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