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*10465441SEvalZeroudp_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*10465441SEvalZeroudp_setup(void) 29*10465441SEvalZero { 30*10465441SEvalZero udp_remove_all(); 31*10465441SEvalZero } 32*10465441SEvalZero 33*10465441SEvalZero static void udp_teardown(void)34*10465441SEvalZeroudp_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*10465441SEvalZeroSTART_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*10465441SEvalZeroudp_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