| #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_DNS |
| /*#error "This test needs DNS turned off (as it mallocs 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_trim and check stats */ |
| START_TEST(test_mem_one) |
| { |
| #define SIZE1 16 |
| #define SIZE1_2 12 |
| #define SIZE2 16 |
| void *p1, *p2; |
| mem_size_t s1, s2; |
| LWIP_UNUSED_ARG(_i); |
| |
| #if LWIP_DNS |
| fail("This test needs DNS turned off (as it mallocs on init)"); |
| #endif |
| |
| 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_trim(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); |
| } |