#include "test_mem.h" #include "lwip/mem.h" #include "lwip/stats.h" #if !LWIP_STATS || !MEM_STATS #error "This tests needs MEM-statistics enabled" #endif #if LWIP_SNMP || LWIP_DNS #error "This test needs SNMP and DNS turned off (as they malloc on init)" #endif /* Setups/teardown functions */ static void mem_setup(void) { } static void mem_teardown(void) { } /* Test functions */ /** Call mem_malloc, mem_free and mem_realloc and check stats */ START_TEST(test_mem_one) { #define SIZE1 16 #define SIZE1_2 12 #define SIZE2 16 void *p1, *p2, *p3, *p4, *p5; mem_size_t s1, s2; LWIP_UNUSED_ARG(_i); fail_unless(lwip_stats.mem.used == 0); p1 = mem_malloc(SIZE1); fail_unless(p1 != NULL); fail_unless(lwip_stats.mem.used >= SIZE1); s1 = lwip_stats.mem.used; p2 = mem_malloc(SIZE2); fail_unless(p2 != NULL); fail_unless(lwip_stats.mem.used >= SIZE2 + s1); s2 = lwip_stats.mem.used; mem_realloc(p1, SIZE1_2); mem_free(p2); fail_unless(lwip_stats.mem.used <= s2 - SIZE2); mem_free(p1); fail_unless(lwip_stats.mem.used == 0); } END_TEST /** Create the suite including all tests for this module */ Suite * mem_suite(void) { TFun tests[] = { test_mem_one, }; return create_suite("MEM", tests, sizeof(tests)/sizeof(TFun), mem_setup, mem_teardown); }