BadVPN – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 #include "lwip_check.h"
2  
3 #include "ip4/test_ip4.h"
4 #include "udp/test_udp.h"
5 #include "tcp/test_tcp.h"
6 #include "tcp/test_tcp_oos.h"
7 #include "core/test_mem.h"
8 #include "core/test_pbuf.h"
9 #include "etharp/test_etharp.h"
10 #include "dhcp/test_dhcp.h"
11 #include "mdns/test_mdns.h"
12 #include "mqtt/test_mqtt.h"
13 #include "api/test_sockets.h"
14  
15 #include "lwip/init.h"
16 #if !NO_SYS
17 #include "lwip/tcpip.h"
18 #endif
19  
20 Suite* create_suite(const char* name, testfunc *tests, size_t num_tests, SFun setup, SFun teardown)
21 {
22 size_t i;
23 Suite *s = suite_create(name);
24  
25 for(i = 0; i < num_tests; i++) {
26 TCase *tc_core = tcase_create(name);
27 if ((setup != NULL) || (teardown != NULL)) {
28 tcase_add_checked_fixture(tc_core, setup, teardown);
29 }
30 tcase_add_named_test(tc_core, tests[i]);
31 suite_add_tcase(s, tc_core);
32 }
33 return s;
34 }
35  
36 void lwip_check_ensure_no_alloc(unsigned int skip)
37 {
38 int i;
39 unsigned int mask;
40  
41 if (!(skip & SKIP_HEAP)) {
42 fail_unless(lwip_stats.mem.used == 0);
43 }
44 for (i = 0, mask = 1; i < MEMP_MAX; i++, mask <<= 1) {
45 if (!(skip & mask)) {
46 fail_unless(lwip_stats.memp[i]->used == 0);
47 }
48 }
49 }
50  
51 #ifdef LWIP_UNITTESTS_LIB
52 int lwip_unittests_run(void)
53 #else
54 int main(void)
55 #endif
56 {
57 int number_failed;
58 SRunner *sr;
59 size_t i;
60 suite_getter_fn* suites[] = {
61 ip4_suite,
62 udp_suite,
63 tcp_suite,
64 tcp_oos_suite,
65 mem_suite,
66 pbuf_suite,
67 etharp_suite,
68 dhcp_suite,
69 mdns_suite,
70 mqtt_suite,
71 sockets_suite
72 };
73 size_t num = sizeof(suites)/sizeof(void*);
74 LWIP_ASSERT("No suites defined", num > 0);
75  
76 #if NO_SYS
77 lwip_init();
78 #else
79 tcpip_init(NULL, NULL);
80 #endif
81  
82 sr = srunner_create((suites[0])());
83 for(i = 1; i < num; i++) {
84 srunner_add_suite(sr, ((suite_getter_fn*)suites[i])());
85 }
86  
87 #ifdef LWIP_UNITTESTS_NOFORK
88 srunner_set_fork_status(sr, CK_NOFORK);
89 #endif
90 #ifdef LWIP_UNITTESTS_FORK
91 srunner_set_fork_status(sr, CK_FORK);
92 #endif
93  
94 srunner_run_all(sr, CK_NORMAL);
95 number_failed = srunner_ntests_failed(sr);
96 srunner_free(sr);
97 return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
98 }