diff --git a/src/test_arena.c b/src/test_arena.c index ba81508..208f8e4 100644 --- a/src/test_arena.c +++ b/src/test_arena.c @@ -3,9 +3,11 @@ // _start test_arena_alloc.c #include "arena.h" + #include -#include #include +#include +#include static struct arena *default_arena = NULL; @@ -17,28 +19,14 @@ int main() err(errno, "failed to allocate arena"); } - printf("\n%p\n", default_arena->next); + printf("\ntest 1: %s", "attempt to allocate arena->cap x 1 byte"); - char *ten_A = arena_alloc(default_arena, 11 * sizeof *ten_A); - char *ten_B = arena_alloc(default_arena, 11 * sizeof *ten_B); - char *ten_C = arena_alloc(default_arena, 11 * sizeof *ten_C); - - for (size_t i=0; i<10; ++i) { - ten_A[i] = 'A'; - ten_B[i] = 'B'; - ten_C[i] = 'C'; - } - - ten_A[10] = '\0'; - ten_B[10] = '\0'; - ten_C[10] = '\0'; - - printf("\n%s %s %s", ten_A, ten_B, ten_C); - printf("\n%p\n", default_arena->next); - - arena_reset(default_arena); - - printf("\n%p\n", default_arena->next); + for (size_t i = 0; i < default_arena->cap; i++) { + volatile void *c = arena_alloc(default_arena, 1); + if (c == NULL) { + err(EXIT_FAILURE, "failed to allocate memory"); + } + } return 0; }