summaryrefslogtreecommitdiff
path: root/fw/hid-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_test_call.h
diff options
context:
space:
mode:
Diffstat (limited to 'fw/hid-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_test_call.h')
-rw-r--r--fw/hid-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_test_call.h121
1 files changed, 121 insertions, 0 deletions
diff --git a/fw/hid-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_test_call.h b/fw/hid-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_test_call.h
new file mode 100644
index 0000000..9325185
--- /dev/null
+++ b/fw/hid-dials/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/Common/JTest/inc/jtest_test_call.h
@@ -0,0 +1,121 @@
+#ifndef _JTEST_TEST_CALL_H_
+#define _JTEST_TEST_CALL_H_
+
+/*--------------------------------------------------------------------------------*/
+/* Includes */
+/*--------------------------------------------------------------------------------*/
+#include "jtest_test.h"
+#include "jtest_test_define.h"
+#include "jtest_fw.h"
+
+/*--------------------------------------------------------------------------------*/
+/* Macros and Defines */
+/*--------------------------------------------------------------------------------*/
+
+/**
+ * Exectute the test in the #JTEST_TEST_t struct associated with the identifier
+ * test_fn and store the result in retval.
+ */
+#define JTEST_TEST_RUN(retval, test_fn) \
+ do \
+ { \
+ JTEST_DUMP_STR("Test Name:\n"); \
+ JTEST_DUMP_STR(JTEST_TEST_STRUCT_NAME(test_fn).test_fn_str); \
+ JTEST_DUMP_STR("Function Under Test:\n"); \
+ JTEST_DUMP_STR(JTEST_TEST_STRUCT_NAME(test_fn).fut_str); \
+ retval = JTEST_TEST_STRUCT_NAME(test_fn).test_fn_ptr(); \
+ } while (0)
+
+/**
+ * Update the enclosing #JTEST_GROUP_t's pass/fail information based on
+ * test_retval.
+ *
+ * @param test_retval A #JTEST_TEST_RET_enum for the current test.
+ *
+ * @warning Only use if #JTEST_TEST_t is called in the context of a
+ * #JTEST_GROUP_t.
+ */
+#define JTEST_TEST_UPDATE_PARENT_GROUP_PF(test_retval) \
+ do \
+ { \
+ /* Update enclosing JTEST_GROUP_t with pass/fail info */ \
+ if (test_retval == JTEST_TEST_PASSED) \
+ { \
+ JTEST_GROUP_INC_PASSED(JTEST_CURRENT_GROUP_PTR(), 1); \
+ } else { \
+ JTEST_GROUP_INC_FAILED(JTEST_CURRENT_GROUP_PTR(), 1); \
+ } \
+ } while (0)
+
+/**
+ * Update the #JTEST_FW with pass/fail information based on test_retval.
+ *
+ * @param test_retval A #JTEST_TEST_RET_enum for the current test.
+ */
+#define JTEST_TEST_UPDATE_FW_PF(test_retval) \
+ do \
+ { \
+ /* Update the JTEST_FW with pass/fail info */ \
+ if (test_retval == JTEST_TEST_PASSED) \
+ { \
+ JTEST_FW_INC_PASSED( 1); \
+ } else { \
+ JTEST_FW_INC_FAILED(1); \
+ } \
+ } while (0)
+
+/**
+ * Update the enclosing JTEST_GROUP_t's pass/fail information, or the
+ * #JTEST_FW's if this test has no enclosing #JTEST_GROUP_t.
+ *
+ * @param test_retval A #JTEST_TEST_RET_enum for the current test.
+ */
+#define JTEST_TEST_UPDATE_PARENT_GROUP_OR_FW_PF(test_retval) \
+ do \
+ { \
+ /* Update pass-fail information */ \
+ if (JTEST_CURRENT_GROUP_PTR() /* Non-null */) \
+ { \
+ JTEST_TEST_UPDATE_PARENT_GROUP_PF(test_retval); \
+ } else { \
+ JTEST_TEST_UPDATE_FW_PF(test_retval); \
+ } \
+ } while (0)
+
+/**
+ * Dump the results of the test to the Keil Debugger.
+ */
+#define JTEST_TEST_DUMP_RESULTS(test_retval) \
+ do \
+ { \
+ if (test_retval == JTEST_TEST_PASSED) \
+ { \
+ JTEST_DUMP_STR("Test Passed\n"); \
+ } else { \
+ JTEST_DUMP_STR("Test Failed\n"); \
+ } \
+ } while (0)
+
+/**
+ * Call the #JTEST_TEST_t assocaited with the identifier test_fn.
+ */
+#define JTEST_TEST_CALL(test_fn) \
+ do \
+ { \
+ if (JTEST_TEST_IS_ENABLED(&JTEST_TEST_STRUCT_NAME(test_fn))) \
+ { \
+ /* Default to failure */ \
+ JTEST_TEST_RET_t __jtest_test_ret = JTEST_TEST_FAILED; \
+ \
+ JTEST_ACT_TEST_START(); \
+ JTEST_TEST_RUN(__jtest_test_ret, test_fn); \
+ \
+ /* Update pass-fail information */ \
+ JTEST_TEST_UPDATE_PARENT_GROUP_OR_FW_PF(__jtest_test_ret); \
+ \
+ JTEST_TEST_DUMP_RESULTS(__jtest_test_ret); \
+ JTEST_ACT_TEST_END(); \
+ } \
+ } while (0)
+
+#endif /* _JTEST_TEST_CALL_H_ */