STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
lwip_unittests.c
Go to the documentation of this file.
1 #include "lwip_check.h"
2 
3 #include "udp/test_udp.h"
4 #include "tcp/test_tcp.h"
5 #include "tcp/test_tcp_oos.h"
6 #include "core/test_mem.h"
7 #include "core/test_pbuf.h"
8 #include "etharp/test_etharp.h"
9 #include "dhcp/test_dhcp.h"
10 
11 #include "lwip/init.h"
12 
13 Suite* create_suite(const char* name, testfunc *tests, size_t num_tests, SFun setup, SFun teardown)
14 {
15  size_t i;
16  Suite *s = suite_create(name);
17 
18  for(i = 0; i < num_tests; i++) {
19  TCase *tc_core = tcase_create(name);
20  if ((setup != NULL) || (teardown != NULL)) {
21  tcase_add_checked_fixture(tc_core, setup, teardown);
22  }
23  tcase_add_named_test(tc_core, tests[i]);
24  suite_add_tcase(s, tc_core);
25  }
26  return s;
27 }
28 
29 #ifdef LWIP_UNITTESTS_LIB
30 int lwip_unittests_run(void)
31 #else
32 int main(void)
33 #endif
34 {
35  int number_failed;
36  SRunner *sr;
37  size_t i;
38  suite_getter_fn* suites[] = {
39  udp_suite,
40  tcp_suite,
42  mem_suite,
43  pbuf_suite,
46  };
47  size_t num = sizeof(suites)/sizeof(void*);
48  LWIP_ASSERT("No suites defined", num > 0);
49 
50  lwip_init();
51 
52  sr = srunner_create((suites[0])());
53  for(i = 1; i < num; i++) {
54  srunner_add_suite(sr, ((suite_getter_fn*)suites[i])());
55  }
56 
57 #ifdef LWIP_UNITTESTS_NOFORK
58  srunner_set_fork_status(sr, CK_NOFORK);
59 #endif
60 #ifdef LWIP_UNITTESTS_FORK
61  srunner_set_fork_status(sr, CK_FORK);
62 #endif
63 
64  srunner_run_all(sr, CK_NORMAL);
65  number_failed = srunner_ntests_failed(sr);
66  srunner_free(sr);
67  return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
68 }
Suite * tcp_oos_suite(void)
END_TEST Suite * udp_suite(void)
Definition: test_udp.c:62
END_TEST Suite * pbuf_suite(void)
Definition: test_pbuf.c:229
Suite *( suite_getter_fn)(void)
Definition: lwip_check.h:28
END_TEST Suite * tcp_suite(void)
Definition: test_tcp.c:659
void lwip_init(void)
Definition: init.c:310
END_TEST Suite * dhcp_suite(void)
Definition: test_dhcp.c:900
#define NULL
Definition: usbd_def.h:53
int main(void)
#define LWIP_ASSERT(message, assertion)
Definition: debug.h:70
Suite * create_suite(const char *name, testfunc *tests, size_t num_tests, SFun setup, SFun teardown)
END_TEST Suite * mem_suite(void)
Definition: test_mem.c:114
END_TEST Suite * etharp_suite(void)
Definition: test_etharp.c:262
#define tcase_add_named_test(tc, tf)
Definition: lwip_check.h:24