xref: /nrf52832-nimble/rt-thread/components/net/lwip-2.0.2/test/unit/lwip_unittests.c (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero #include "lwip_check.h"
2*10465441SEvalZero 
3*10465441SEvalZero #include "udp/test_udp.h"
4*10465441SEvalZero #include "tcp/test_tcp.h"
5*10465441SEvalZero #include "tcp/test_tcp_oos.h"
6*10465441SEvalZero #include "core/test_mem.h"
7*10465441SEvalZero #include "core/test_pbuf.h"
8*10465441SEvalZero #include "etharp/test_etharp.h"
9*10465441SEvalZero #include "dhcp/test_dhcp.h"
10*10465441SEvalZero #include "mdns/test_mdns.h"
11*10465441SEvalZero 
12*10465441SEvalZero #include "lwip/init.h"
13*10465441SEvalZero 
create_suite(const char * name,testfunc * tests,size_t num_tests,SFun setup,SFun teardown)14*10465441SEvalZero Suite* create_suite(const char* name, testfunc *tests, size_t num_tests, SFun setup, SFun teardown)
15*10465441SEvalZero {
16*10465441SEvalZero   size_t i;
17*10465441SEvalZero   Suite *s = suite_create(name);
18*10465441SEvalZero 
19*10465441SEvalZero   for(i = 0; i < num_tests; i++) {
20*10465441SEvalZero     TCase *tc_core = tcase_create(name);
21*10465441SEvalZero     if ((setup != NULL) || (teardown != NULL)) {
22*10465441SEvalZero       tcase_add_checked_fixture(tc_core, setup, teardown);
23*10465441SEvalZero     }
24*10465441SEvalZero     tcase_add_named_test(tc_core, tests[i]);
25*10465441SEvalZero     suite_add_tcase(s, tc_core);
26*10465441SEvalZero   }
27*10465441SEvalZero   return s;
28*10465441SEvalZero }
29*10465441SEvalZero 
30*10465441SEvalZero #ifdef LWIP_UNITTESTS_LIB
lwip_unittests_run(void)31*10465441SEvalZero int lwip_unittests_run(void)
32*10465441SEvalZero #else
33*10465441SEvalZero int main(void)
34*10465441SEvalZero #endif
35*10465441SEvalZero {
36*10465441SEvalZero   int number_failed;
37*10465441SEvalZero   SRunner *sr;
38*10465441SEvalZero   size_t i;
39*10465441SEvalZero   suite_getter_fn* suites[] = {
40*10465441SEvalZero     udp_suite,
41*10465441SEvalZero     tcp_suite,
42*10465441SEvalZero     tcp_oos_suite,
43*10465441SEvalZero     mem_suite,
44*10465441SEvalZero     pbuf_suite,
45*10465441SEvalZero     etharp_suite,
46*10465441SEvalZero     dhcp_suite,
47*10465441SEvalZero     mdns_suite
48*10465441SEvalZero   };
49*10465441SEvalZero   size_t num = sizeof(suites)/sizeof(void*);
50*10465441SEvalZero   LWIP_ASSERT("No suites defined", num > 0);
51*10465441SEvalZero 
52*10465441SEvalZero   lwip_init();
53*10465441SEvalZero 
54*10465441SEvalZero   sr = srunner_create((suites[0])());
55*10465441SEvalZero   for(i = 1; i < num; i++) {
56*10465441SEvalZero     srunner_add_suite(sr, ((suite_getter_fn*)suites[i])());
57*10465441SEvalZero   }
58*10465441SEvalZero 
59*10465441SEvalZero #ifdef LWIP_UNITTESTS_NOFORK
60*10465441SEvalZero   srunner_set_fork_status(sr, CK_NOFORK);
61*10465441SEvalZero #endif
62*10465441SEvalZero #ifdef LWIP_UNITTESTS_FORK
63*10465441SEvalZero   srunner_set_fork_status(sr, CK_FORK);
64*10465441SEvalZero #endif
65*10465441SEvalZero 
66*10465441SEvalZero   srunner_run_all(sr, CK_NORMAL);
67*10465441SEvalZero   number_failed = srunner_ntests_failed(sr);
68*10465441SEvalZero   srunner_free(sr);
69*10465441SEvalZero   return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
70*10465441SEvalZero }
71