int main () { TEST_INIT (); jmem_heap_init (); jmem_register_free_unused_memory_callback (test_heap_give_some_memory_back); #ifdef JMEM_STATS jmem_heap_stats_print (); #endif /* JMEM_STATS */ for (uint32_t i = 0; i < test_iters; i++) { for (uint32_t j = 0; j < test_sub_iters; j++) { size_t size = (size_t) rand () % test_threshold_block_size; ptrs[j] = (uint8_t *) jmem_heap_alloc_block (size); sizes[j] = size; TEST_ASSERT (sizes[j] == 0 || ptrs[j] != NULL); memset (ptrs[j], 0, sizes[j]); } /* jmem_heap_print (true); */ for (uint32_t j = 0; j < test_sub_iters; j++) { if (ptrs[j] != NULL) { for (size_t k = 0; k < sizes[j]; k++) { TEST_ASSERT (ptrs[j][k] == 0); } jmem_heap_free_block (ptrs[j], sizes[j]); ptrs[j] = NULL; } } } #ifdef JMEM_STATS jmem_heap_stats_print (); #endif /* JMEM_STATS */ return 0; } /* main */
/** * Initialize memory allocators. */ void jmem_init (void) { jmem_heap_init (); } /* jmem_init */