STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
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  testfunc tests[] = {
65  TESTFUNC(test_udp_new_remove),
66  };
67  return create_suite("UDP", tests, sizeof(tests)/sizeof(testfunc), udp_setup, udp_teardown);
68 }
#define TESTFUNC(x)
Definition: lwip_check.h:21
END_TEST Suite * udp_suite(void)
Definition: test_udp.c:62
#define NULL
Definition: usbd_def.h:53
Suite * create_suite(const char *name, testfunc *tests, size_t num_tests, SFun setup, SFun teardown)
START_TEST(test_udp_new_remove)
Definition: test_udp.c:42
#define LWIP_UNUSED_ARG(x)
Definition: arch.h:89