From d16a1385efe911b1683e390f672cadee78b842be Mon Sep 17 00:00:00 2001 From: physick Date: Wed, 12 Aug 2026 18:33:52 +0500 Subject: test system --- src/tests/arena_tests.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/tests/arena_tests.c (limited to 'src/tests/arena_tests.c') diff --git a/src/tests/arena_tests.c b/src/tests/arena_tests.c new file mode 100644 index 0000000..b1c8aa8 --- /dev/null +++ b/src/tests/arena_tests.c @@ -0,0 +1,39 @@ +#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; +} -- cgit v1.3