summaryrefslogtreecommitdiff
path: root/fw/midi-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_group_call.h
diff options
context:
space:
mode:
Diffstat (limited to 'fw/midi-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_group_call.h')
-rw-r--r--fw/midi-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_group_call.h126
1 files changed, 126 insertions, 0 deletions
diff --git a/fw/midi-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_group_call.h b/fw/midi-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_group_call.h
new file mode 100644
index 0000000..d565a4c
--- /dev/null
+++ b/fw/midi-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_group_call.h
@@ -0,0 +1,126 @@
+#ifndef _JTEST_GROUP_CALL_H_
+#define _JTEST_GROUP_CALL_H_
+
+/*--------------------------------------------------------------------------------*/
+/* Includes */
+/*--------------------------------------------------------------------------------*/
+
+#include "jtest_fw.h"
+#include <inttypes.h>
+
+/*--------------------------------------------------------------------------------*/
+/* Macros and Defines */
+/*--------------------------------------------------------------------------------*/
+
+/**
+ * Execute the test in the #JTEST_GROUP_t struct associated witht he identifier
+ * group_fn.
+ */
+#define JTEST_GROUP_RUN(group_fn) \
+ do \
+ { \
+ JTEST_DUMP_STR("Group Name:\n"); \
+ JTEST_DUMP_STR(JTEST_GROUP_STRUCT_NAME(group_fn).name_str); \
+ JTEST_GROUP_STRUCT_NAME(group_fn).group_fn_ptr(); \
+ } while (0)
+
+
+/**
+ * Update the enclosing #JTEST_GROUP_t's pass/fail information using the
+ * current #JTEST_GROUP_t's.
+ *
+ * @param group_ptr Pointer to the current #JTEST_GROUP_t.
+ * @param parent_ptr Pointer to the enclosing #JTEST_GROUP_t.
+ *
+ * @warning Only run this if the current #JTEST_GROUP_t is being called within
+ * the context of another #JTEST_GROUP_t.
+ */
+#define JTEST_GROUP_UPDATE_PARENT_GROUP_PF(group_ptr, parent_group_ptr) \
+ do \
+ { \
+ JTEST_GROUP_INC_PASSED(parent_group_ptr, \
+ (group_ptr)->passed); \
+ JTEST_GROUP_INC_FAILED(parent_group_ptr, \
+ (group_ptr)->failed); \
+ } while (0)
+
+/**
+ * Update the #JTEST_FW's pass/fail information using the current
+ * #JTEST_GROUP_t's.
+ */
+#define JTEST_GROUP_UPDATE_FW_PF(group_ptr) \
+ do \
+ { \
+ JTEST_FW_INC_PASSED((group_ptr)->passed); \
+ JTEST_FW_INC_FAILED((group_ptr)->failed); \
+ } while (0)
+
+/**
+ * Update the enclosing context with the current #JTEST_GROUP_t's pass/fail
+ * information. If this group isn't in an enclosing group, it updates the
+ * #JTEST_FW's pass/fail info by default.
+ */
+#define JTEST_GROUP_UPDATE_PARENT_GROUP_OR_FW_PF(group_ptr, \
+ parent_group_ptr) \
+ do \
+ { \
+ /* Update the pass fail counts in the parent group */ \
+ if (parent_group_ptr /* Null implies Top*/) \
+ { \
+ JTEST_GROUP_UPDATE_PARENT_GROUP_PF( \
+ group_ptr, \
+ parent_group_ptr); \
+ } else { \
+ JTEST_GROUP_UPDATE_FW_PF( \
+ group_ptr); \
+ } \
+ } while (0)
+
+/**
+ * Dump the results of running the #JTEST_GROUP_t to the Keil Debugger.
+ */
+#define JTEST_GROUP_DUMP_RESULTS(group_ptr) \
+ do \
+ { \
+ JTEST_DUMP_STRF( \
+ "Tests Run: %" PRIu32 "\n" \
+ "----------\n" \
+ " Passed: %" PRIu32 "\n" \
+ " Failed: %" PRIu32 "\n", \
+ (group_ptr)->passed + (group_ptr)->failed, \
+ (group_ptr)->passed, \
+ (group_ptr)->failed); \
+ } while (0)
+
+/**
+ * Call the #JTEST_GROUP_t associated with the identifier group_fn.
+ */
+#define JTEST_GROUP_CALL(group_fn) \
+ do \
+ { /* Save the current group from JTEST_FW_t before swapping */ \
+ /* it to this group (in order to restore it later )*/ \
+ JTEST_GROUP_t * __jtest_temp_group_ptr = \
+ JTEST_CURRENT_GROUP_PTR(); \
+ JTEST_SET_CURRENT_GROUP(&JTEST_GROUP_STRUCT_NAME(group_fn)); \
+ \
+ /* Reset this group's pass/fail count. Each group */ \
+ /* should only remember counts for its last execution. */ \
+ JTEST_GROUP_RESET_PF(JTEST_CURRENT_GROUP_PTR()); \
+ \
+ /* Run the current group */ \
+ JTEST_ACT_GROUP_START(); \
+ JTEST_GROUP_RUN(group_fn); \
+ JTEST_ACT_GROUP_END(); \
+ \
+ /* Update the pass fail counts in the parent group (or FW) */ \
+ JTEST_GROUP_UPDATE_PARENT_GROUP_OR_FW_PF( \
+ JTEST_CURRENT_GROUP_PTR(), \
+ __jtest_temp_group_ptr); \
+ \
+ JTEST_GROUP_DUMP_RESULTS(JTEST_CURRENT_GROUP_PTR()); \
+ \
+ /* Restore the previously current group */ \
+ JTEST_SET_CURRENT_GROUP(__jtest_temp_group_ptr); \
+ } while (0)
+
+#endif /* _JTEST_GROUP_CALL_H_ */