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 udp_remove_all(void)12udp_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 udp_setup(void)28udp_setup(void) 29 { 30 udp_remove_all(); 31 } 32 33 static void udp_teardown(void)34udp_teardown(void) 35 { 36 udp_remove_all(); 37 } 38 39 40 /* Test functions */ 41 START_TEST(test_udp_new_remove)42START_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 60 /** Create the suite including all tests for this module */ 61 Suite * udp_suite(void)62udp_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 } 69