#include "test.h" #include "../utils/arena.h" #include #include char *ArenaAllocation() { Arena arena = {0}; ArenaInit(&arena, 1024); // Init size_t elements = 10; int *arr = ArenaAlloc(&arena, sizeof(int) * elements); if (arr == NULL) return "The int array allocation failed"; for (int i = 0; i < elements; ++i) { arr[i] = i; } char *duped = ArenaStrdup(&arena, "Test string"); if (arr == NULL) return "The string array allocation failed"; // Access for (int i = 0; i < elements; ++i) { if (arr[i] != i) return "Arena memory corruption in the int array"; } if (strcmp(duped, "Test string") != 0) { return "Arena memory corruption in the string duping"; } free(arena.mem); return NULL; } char *ArenaOutOfMemory() { Arena arena = {0}; ArenaInit(&arena, sizeof(int) * 2); int *arr = ArenaAlloc(&arena, sizeof(int) * 3); free(arena.mem); if (arr != NULL) return "The int array allocation did not fail"; return NULL; }