1*5d5fbe79SDavid van Moolenbroek #ifndef LWIP_HDR_LWIP_CHECK_H 2*5d5fbe79SDavid van Moolenbroek #define LWIP_HDR_LWIP_CHECK_H 3*5d5fbe79SDavid van Moolenbroek 4*5d5fbe79SDavid van Moolenbroek /* Common header file for lwIP unit tests using the check framework */ 5*5d5fbe79SDavid van Moolenbroek 6*5d5fbe79SDavid van Moolenbroek #include <config.h> 7*5d5fbe79SDavid van Moolenbroek #include <check.h> 8*5d5fbe79SDavid van Moolenbroek #include <stdlib.h> 9*5d5fbe79SDavid van Moolenbroek 10*5d5fbe79SDavid van Moolenbroek #define FAIL_RET() do { fail(); return; } while(0) 11*5d5fbe79SDavid van Moolenbroek #define EXPECT(x) fail_unless(x) 12*5d5fbe79SDavid van Moolenbroek #define EXPECT_RET(x) do { fail_unless(x); if(!(x)) { return; }} while(0) 13*5d5fbe79SDavid van Moolenbroek #define EXPECT_RETX(x, y) do { fail_unless(x); if(!(x)) { return y; }} while(0) 14*5d5fbe79SDavid van Moolenbroek #define EXPECT_RETNULL(x) EXPECT_RETX(x, NULL) 15*5d5fbe79SDavid van Moolenbroek 16*5d5fbe79SDavid van Moolenbroek typedef struct { 17*5d5fbe79SDavid van Moolenbroek TFun func; 18*5d5fbe79SDavid van Moolenbroek const char *name; 19*5d5fbe79SDavid van Moolenbroek } testfunc; 20*5d5fbe79SDavid van Moolenbroek 21*5d5fbe79SDavid van Moolenbroek #define TESTFUNC(x) {(x), "" # x "" } 22*5d5fbe79SDavid van Moolenbroek 23*5d5fbe79SDavid van Moolenbroek /* Modified function from check.h, supplying function name */ 24*5d5fbe79SDavid van Moolenbroek #define tcase_add_named_test(tc,tf) \ 25*5d5fbe79SDavid van Moolenbroek _tcase_add_test((tc),(tf).func,(tf).name,0, 0, 0, 1) 26*5d5fbe79SDavid van Moolenbroek 27*5d5fbe79SDavid van Moolenbroek /** typedef for a function returning a test suite */ 28*5d5fbe79SDavid van Moolenbroek typedef Suite* (suite_getter_fn)(void); 29*5d5fbe79SDavid van Moolenbroek 30*5d5fbe79SDavid van Moolenbroek /** Create a test suite */ 31*5d5fbe79SDavid van Moolenbroek Suite* create_suite(const char* name, testfunc *tests, size_t num_tests, SFun setup, SFun teardown); 32*5d5fbe79SDavid van Moolenbroek 33*5d5fbe79SDavid van Moolenbroek #ifdef LWIP_UNITTESTS_LIB 34*5d5fbe79SDavid van Moolenbroek int lwip_unittests_run(void) 35*5d5fbe79SDavid van Moolenbroek #endif 36*5d5fbe79SDavid van Moolenbroek 37*5d5fbe79SDavid van Moolenbroek #endif /* LWIP_HDR_LWIP_CHECK_H */ 38