From 6c11d4503758079f29ce2b0b0509d2a128ada662 Mon Sep 17 00:00:00 2001 From: Mitya Selivanov <0x7fffff@guattari.ru> Date: Sat, 6 Aug 2022 17:25:22 +0400 Subject: test --- source/kit_test/test.h | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) (limited to 'source/kit_test/test.h') 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 #include #include @@ -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 -- cgit v1.2.3