uc-sdk
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
test_udp.c
Go to the documentation of this file.
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(lwip_stats.memp[MEMP_UDP_PCB].used == 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(lwip_stats.memp[MEMP_UDP_PCB].used == 0);
48 
49  pcb = udp_new();
50  fail_unless(pcb != NULL);
51  if (pcb != NULL) {
52  fail_unless(lwip_stats.memp[MEMP_UDP_PCB].used == 1);
53  udp_remove(pcb);
54  fail_unless(lwip_stats.memp[MEMP_UDP_PCB].used == 0);
55  }
56 }
57 END_TEST
58 
59 
61 Suite *
62 udp_suite(void)
63 {
64  TFun tests[] = {
65  test_udp_new_remove,
66  };
67  return create_suite("UDP", tests, sizeof(tests)/sizeof(TFun), udp_setup, udp_teardown);
68 }