#include "test_arena.h" #include "aliases.h" #include "mem_arena.h" #include "tester.h" #include #include #define ARENA_CAPACITY 1024 internal Arena *arena = NULL; internal u64 count = 20; internal i32 *array = NULL; TestFuncResult test_arena_init(void) { bool result = wapp_mem_arena_init_default(&arena, ARENA_CAPACITY); return wapp_tester_result(result); } TestFuncResult test_arena_init_succeeds_when_reserving_very_large_size(void) { Arena *large_arena = NULL; u64 capacity = 512ull * 1024ull * 1024ull * 1024ull; bool result = wapp_mem_arena_init(&large_arena, capacity, WAPP_MEM_ALLOC_RESERVE, false); if (result) { wapp_mem_arena_destroy(&large_arena); } return wapp_tester_result(result); } TestFuncResult test_arena_alloc_succeeds_when_within_capacity(void) { array = wapp_mem_arena_alloc(arena, count * sizeof(i32)); bool result = array != NULL; for (u64 i = 0; i < count; ++i) { array[i] = i * 10; } return wapp_tester_result(result); } TestFuncResult test_arena_alloc_fails_when_over_capacity(void) { u8 *bytes = wapp_mem_arena_alloc(arena, ARENA_CAPACITY * 2); bool result = bytes == NULL; return wapp_tester_result(result); } TestFuncResult test_arena_clear(void) { wapp_mem_arena_clear(arena); bool result = true; for (u64 i = 0; i < count; ++i) { if (array[i] != 0) { result = false; break; } } return wapp_tester_result(result); } TestFuncResult test_arena_destroy(void) { wapp_mem_arena_destroy(&arena); bool result = arena == NULL; return wapp_tester_result(result); }