#include "kpl_test.h" KPL_TEST(allocate) { kpl_memory_allocator allocator = {}; kpl_memory_allocator_init(&allocator); for (int32_t times = 0; times < 700; times++) { kpl_object *objects[10] = {}; for (int32_t object = 0; object < 10; object++) { objects[object] = kpl_memory_allocator_allocate(&allocator, 32, KPL_THREAD_MAIN_ID); KPL_ASSERT(objects[object]->object_size == 32, "Invalid size for 32 byte object"); } for (int32_t object = 0; object < 10; object++) kpl_memory_allocator_return(&allocator, objects[object]); } kpl_memory_allocator_slab_group *slab_group32 = &allocator.slabs[5]; KPL_ASSERT(slab_group32->slab_head == slab_group32->slab_tail, "Only one slab should have been allocated"); kpl_memory_allocator_free(&allocator); }