xref: /minix/minix/lib/liblwip/dist/test/unit/udp/test_udp.c (revision bb9622b5)
1 #include "test_udp.h"
2 
3 #include "lwip/udp.h"
4 #include "lwip/stats.h"
5 
6 #if !LWIP_STATS || !UDP_STATS || !MEMP_STATS
7 #error "This tests needs UDP- and MEMP-statistics enabled"
8 #endif
9 
10 /* Helper functions */
11 static void
12 udp_remove_all(void)
13 {
14   struct udp_pcb *pcb = udp_pcbs;
15   struct udp_pcb *pcb2;
16 
17   while(pcb != NULL) {
18     pcb2 = pcb;
19     pcb = pcb->next;
20     udp_remove(pcb2);
21   }
22   fail_unless(MEMP_STATS_GET(used, MEMP_UDP_PCB) == 0);
23 }
24 
25 /* Setups/teardown functions */
26 
27 static void
28 udp_setup(void)
29 {
30   udp_remove_all();
31 }
32 
33 static void
34 udp_teardown(void)
35 {
36   udp_remove_all();
37 }
38 
39 
40 /* Test functions */
41 
42 START_TEST(test_udp_new_remove)
43 {
44   struct udp_pcb* pcb;
45   LWIP_UNUSED_ARG(_i);
46 
47   fail_unless(MEMP_STATS_GET(used, MEMP_UDP_PCB) == 0);
48 
49   pcb = udp_new();
50   fail_unless(pcb != NULL);
51   if (pcb != NULL) {
52     fail_unless(MEMP_STATS_GET(used, MEMP_UDP_PCB) == 1);
53     udp_remove(pcb);
54     fail_unless(MEMP_STATS_GET(used, MEMP_UDP_PCB) == 0);
55   }
56 }
57 END_TEST
58 
59 
60 /** Create the suite including all tests for this module */
61 Suite *
62 udp_suite(void)
63 {
64   testfunc tests[] = {
65     TESTFUNC(test_udp_new_remove),
66   };
67   return create_suite("UDP", tests, sizeof(tests)/sizeof(testfunc), udp_setup, udp_teardown);
68 }
69