diff options
| author | physick <mynameisgennadiy@vk.com> | 2026-08-12 18:33:52 +0500 |
|---|---|---|
| committer | physick <mynameisgennadiy@vk.com> | 2026-08-29 14:17:03 +0500 |
| commit | d16a1385efe911b1683e390f672cadee78b842be (patch) | |
| tree | 9c4a5e8a01952befa6b48c8fee4bd7471dbf421f /src/tests/arena_tests.c | |
| parent | b1b2586afa06105291355a19f581016c347463bc (diff) | |
test system
Diffstat (limited to 'src/tests/arena_tests.c')
| -rw-r--r-- | src/tests/arena_tests.c | 39 |
1 files changed, 39 insertions, 0 deletions
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 <stdlib.h> +#include <string.h> + +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; +} |
