summaryrefslogtreecommitdiff
path: root/source/kit_test/test.h
diff options
context:
space:
mode:
authorMitya Selivanov <0x7fffff@guattari.ru>2022-08-06 17:25:22 +0400
committerMitya Selivanov <0x7fffff@guattari.ru>2022-08-06 17:25:22 +0400
commit6c11d4503758079f29ce2b0b0509d2a128ada662 (patch)
treecabe8b223faf8ac42136a0ff10a77622ab0b7cb0 /source/kit_test/test.h
parentf112dc4a2dc80d1fe2591a675807cb28f0776d3b (diff)
downloadkit-6c11d4503758079f29ce2b0b0509d2a128ada662.zip
test
Diffstat (limited to 'source/kit_test/test.h')
-rw-r--r--source/kit_test/test.h42
1 files changed, 24 insertions, 18 deletions
diff --git a/source/kit_test/test.h b/source/kit_test/test.h
index 09df7e9..a57f768 100644
--- a/source/kit_test/test.h
+++ b/source/kit_test/test.h
@@ -5,7 +5,6 @@
extern "C" {
#endif
-#include <stdbool.h>
#include <stddef.h>
#include <string.h>
@@ -26,7 +25,7 @@ extern "C" {
#endif
typedef void (*kit_test_report)(int, char const *file, int line,
- bool);
+ _Bool);
typedef void (*kit_test_function)(int, kit_test_report);
struct kit_test_case {
@@ -35,7 +34,7 @@ struct kit_test_case {
int assertions;
char const *file[KIT_TEST_ASSERTIONS_LIMIT];
int line[KIT_TEST_ASSERTIONS_LIMIT];
- bool status[KIT_TEST_ASSERTIONS_LIMIT];
+ _Bool status[KIT_TEST_ASSERTIONS_LIMIT];
};
struct kit_tests_list {
@@ -47,48 +46,55 @@ extern struct kit_tests_list kit_tests_list;
#ifdef _MSC_VER
# pragma section(".CRT$XCU", read)
-# define KIT_TEST_ON_START_2(f, p) \
+# define KIT_TEST_ON_START_2_(f, p) \
static void f(void); \
__declspec(allocate(".CRT$XCU")) void (*f##_)(void) = f; \
__pragma(comment(linker, "/include:" p #f "_")) static void f( \
void)
# ifdef _WIN64
-# define KIT_TEST_ON_START(f) KIT_TEST_ON_START_2(f, "")
+# define KIT_TEST_ON_START_(f) KIT_TEST_ON_START_2_(f, "")
# else
-# define KIT_TEST_ON_START(f) KIT_TEST_ON_START_2(f, "_")
+# define KIT_TEST_ON_START_(f) KIT_TEST_ON_START_2_(f, "_")
# endif
#else
-# define KIT_TEST_ON_START(f) \
+# define KIT_TEST_ON_START_(f) \
static void f(void) __attribute__((constructor)); \
static void f(void)
#endif
-#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)
+#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)
-#define 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)) { \
+#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_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)( \
+ static void KIT_TEST_CONCAT3_(kit_test_run_, __LINE__, \
+ KIT_TEST_FILE)( \
int kit_test_index_, kit_test_report kit_test_report_)
-#define REQUIRE(ok) \
+#define KIT_REQUIRE(ok) \
kit_test_report_(kit_test_index_, __FILE__, __LINE__, (ok))
int kit_run_tests(int argc, char **argv);
+#ifndef KIT_DISABLE_SHORT_NAMES
+# define TEST KIT_TEST
+# define REQUIRE KIT_REQUIRE
+
+# define run_tests kit_run_tests
+#endif
+
#ifdef __cplusplus
}
#endif