65 #define TEST_RES_FAIL -1 66 #define TEST_RES_ASSERT -2 68 #define ERREXIT() if (get_abort_on_error()) abort(); else inc_error_count() 89 #define TEST_CHECK(x) if (!(x)) { \ 90 printf(" TEST FAIL %s:%d\n", __FILE__, __LINE__); \ 93 #define TEST_CHECK_EQ(x, y) if ((x) != (y)) { \ 94 printf(" TEST FAIL %s:%d, %d != %d\n", __FILE__, __LINE__, (int)(x), (int)(y)); \ 97 #define TEST_CHECK_NEQ(x, y) if ((x) == (y)) { \ 98 printf(" TEST FAIL %s:%d, %d == %d\n", __FILE__, __LINE__, (int)(x), (int)(y)); \ 101 #define TEST_CHECK_GT(x, y) if ((x) <= (y)) { \ 102 printf(" TEST FAIL %s:%d, %d <= %d\n", __FILE__, __LINE__, (int)(x), (int)(y)); \ 105 #define TEST_CHECK_LT(x, y) if ((x) >= (y)) { \ 106 printf(" TEST FAIL %s:%d, %d >= %d\n", __FILE__, __LINE__, (int)(x), (int)(y)); \ 109 #define TEST_CHECK_GE(x, y) if ((x) < (y)) { \ 110 printf(" TEST FAIL %s:%d, %d < %d\n", __FILE__, __LINE__, (int)(x), (int)(y)); \ 113 #define TEST_CHECK_LE(x, y) if ((x) > (y)) { \ 114 printf(" TEST FAIL %s:%d, %d > %d\n", __FILE__, __LINE__, (int)(x), (int)(y)); \ 117 #define TEST_ASSERT(x) if (!(x)) { \ 118 printf(" TEST ASSERT %s:%d\n", __FILE__, __LINE__); \ 119 goto __fail_assert; \ 122 #define DBGT(...) printf(__VA_ARGS__) 128 #define SUITE_TESTS(sui) \ 129 void _add_suite_tests_##sui(void) { 131 #define SUITE_END(sui) \ 134 #define ADD_TEST(tf) \ 135 _add_test(__test_##tf, str(tf), setup, teardown, 0); 137 #define ADD_TEST_NON_DEFAULT(tf) \ 138 _add_test(__test_##tf, str(tf), setup, teardown, 1); 140 #define ADD_SUITE(sui) \ 141 extern void _add_suite_tests_##sui(void); \ 142 _add_suite_tests_##sui(); 145 static int __test_##tf(struct test_s *t) { do 149 __fail_stop: return TEST_RES_FAIL; \ 150 __fail_assert: return TEST_RES_ASSERT; \ void(* setup)(struct test_s *t)
Definition: testrunner.h:78
struct test_s * _next
Definition: testrunner.h:80
void test_init(void(*on_stop)(test *t))
Definition: testrunner.h:84
int run_tests(int argc, char **args)
void _add_suite(const char *suite_name)
char name[256]
Definition: testrunner.h:76
int get_abort_on_error(void)
struct test_res_s test_res
unsigned char test_result
Definition: testrunner.h:81
test_f f
Definition: testrunner.h:75
void inc_error_count(void)
void(* teardown)(struct test_s *t)
Definition: testrunner.h:79
int set_abort_on_error(int val)
Definition: testrunner.h:74
int(* test_f)(struct test_s *t)
Definition: testrunner.h:72
int get_error_count(void)
void * data
Definition: testrunner.h:77
struct test_res_s * _next
Definition: testrunner.h:86
void _add_test(test_f f, char *name, void(*setup)(test *t), void(*teardown)(test *t), int non_default)