summaryrefslogtreecommitdiff
path: root/source/kit_test/test.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/kit_test/test.h')
-rw-r--r--source/kit_test/test.h79
1 files changed, 41 insertions, 38 deletions
diff --git a/source/kit_test/test.h b/source/kit_test/test.h
index 37abb9f..fdbfbdc 100644
--- a/source/kit_test/test.h
+++ b/source/kit_test/test.h
@@ -24,24 +24,25 @@ extern "C" {
# define KIT_TEST_STRING_SIZE 0x100
#endif
-typedef void (*kit_test_report)(int, char const *file, int line, int);
-typedef void (*kit_test_function)(int, kit_test_report);
-
-struct kit_test_case {
- char test_name[KIT_TEST_STRING_SIZE];
- kit_test_function test_fn;
- int assertions;
- char const *file[KIT_TEST_ASSERTIONS_LIMIT];
- int line[KIT_TEST_ASSERTIONS_LIMIT];
- int status[KIT_TEST_ASSERTIONS_LIMIT];
-};
-
-struct kit_tests_list {
- int size;
- struct kit_test_case tests[KIT_TESTS_SIZE_LIMIT];
-};
-
-extern struct kit_tests_list kit_tests_list;
+typedef void (*kit_test_report_fn)(int, char const *file, int line,
+ int ok);
+typedef void (*kit_test_run_fn)(int, kit_test_report_fn);
+
+typedef struct {
+ char test_name[KIT_TEST_STRING_SIZE];
+ kit_test_run_fn test_fn;
+ int assertions;
+ char const *file[KIT_TEST_ASSERTIONS_LIMIT];
+ int line[KIT_TEST_ASSERTIONS_LIMIT];
+ int status[KIT_TEST_ASSERTIONS_LIMIT];
+} kit_test_case_t;
+
+typedef struct {
+ int size;
+ kit_test_case_t tests[KIT_TESTS_SIZE_LIMIT];
+} kit_tests_list_t;
+
+extern kit_tests_list_t kit_tests_list;
#define KIT_TEST_CONCAT4_(a, b, c, d) a##b##c##d
#define KIT_TEST_CONCAT3_(a, b, c) KIT_TEST_CONCAT4_(a, b, _, c)
@@ -78,26 +79,28 @@ extern struct kit_tests_list kit_tests_list;
# endif
#endif
-#define KIT_TEST(name) \
- static void KIT_TEST_CONCAT3_( \
- kit_test_run_, __LINE__, KIT_TEST_FILE)(int, kit_test_report); \
- KIT_TEST_ON_START_( \
- KIT_TEST_CONCAT3_(kit_test_case_, __LINE__, KIT_TEST_FILE)) { \
- int n = kit_tests_list.size; \
- if (n < KIT_TESTS_SIZE_LIMIT) { \
- kit_tests_list.size++; \
- kit_tests_list.tests[n].test_fn = KIT_TEST_CONCAT3_( \
- kit_test_run_, __LINE__, KIT_TEST_FILE); \
- strcpy(kit_tests_list.tests[n].test_name, name); \
- kit_tests_list.tests[n].assertions = 0; \
- } \
- } \
- static void KIT_TEST_CONCAT3_(kit_test_run_, __LINE__, \
- KIT_TEST_FILE)( \
- int kit_test_index_, kit_test_report kit_test_report_)
-
-#define KIT_REQUIRE(...) \
- kit_test_report_(kit_test_index_, __FILE__, __LINE__, (__VA_ARGS__))
+#define KIT_TEST(name) \
+ static void KIT_TEST_CONCAT3_(kit_test_run_, __LINE__, \
+ KIT_TEST_FILE)(int, \
+ kit_test_report_fn); \
+ KIT_TEST_ON_START_( \
+ KIT_TEST_CONCAT3_(kit_test_case_, __LINE__, KIT_TEST_FILE)) { \
+ int n = kit_tests_list.size; \
+ if (n < KIT_TESTS_SIZE_LIMIT) { \
+ kit_tests_list.size++; \
+ kit_tests_list.tests[n].test_fn = KIT_TEST_CONCAT3_( \
+ kit_test_run_, __LINE__, KIT_TEST_FILE); \
+ strcpy(kit_tests_list.tests[n].test_name, name); \
+ kit_tests_list.tests[n].assertions = 0; \
+ } \
+ } \
+ static void KIT_TEST_CONCAT3_(kit_test_run_, __LINE__, \
+ KIT_TEST_FILE)( \
+ int kit_test_index_, kit_test_report_fn kit_test_report_fn_)
+
+#define KIT_REQUIRE(...) \
+ kit_test_report_fn_(kit_test_index_, __FILE__, __LINE__, \
+ (__VA_ARGS__))
int kit_run_tests(int argc, char **argv);