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; \
Definition: testrunner.h:84
struct test_res_s * _next
Definition: testrunner.h:86
char name[256]
Definition: testrunner.h:85
Definition: testrunner.h:74
char name[256]
Definition: testrunner.h:76
void(* setup)(struct test_s *t)
Definition: testrunner.h:78
unsigned char test_result
Definition: testrunner.h:81
test_f f
Definition: testrunner.h:75
void * data
Definition: testrunner.h:77
struct test_s * _next
Definition: testrunner.h:80
void(* teardown)(struct test_s *t)
Definition: testrunner.h:79
int get_error_count(void)
void _add_test(test_f f, char *name, void(*setup)(test *t), void(*teardown)(test *t), int non_default)
void inc_error_count(void)
void test_init(void(*on_stop)(test *t))
int get_abort_on_error(void)
struct test_res_s test_res
int(* test_f)(struct test_s *t)
Definition: testrunner.h:72
void _add_suite(const char *suite_name)
int run_tests(int argc, char **args)
int set_abort_on_error(int val)