diff options
| -rw-r--r-- | meson.build | 2 | ||||
| -rw-r--r-- | tests/memory.c | 50 |
2 files changed, 52 insertions, 0 deletions
diff --git a/meson.build b/meson.build index b640bf1..1918463 100644 --- a/meson.build +++ b/meson.build @@ -14,3 +14,5 @@ test_string = executable('test_string', 'tests/test_runner.c', 'tests/string.c', test('test_string', test_string) test_bytes = executable('test_bytes', 'tests/test_runner.c', 'tests/bytes.c', dependencies: [lisiblestd_dep]) test('test_bytes', test_bytes) +test_memory = executable('test_memory', 'tests/test_runner.c', 'tests/memory.c', dependencies: [lisiblestd_dep]) +test('test_memory', test_memory) diff --git a/tests/memory.c b/tests/memory.c new file mode 100644 index 0000000..b0b2d79 --- /dev/null +++ b/tests/memory.c @@ -0,0 +1,50 @@ +#include "test.h" +#include <lisiblestd/log.h> +#include <lisiblestd/memory.h> + +void t_arena_create(void) { + Arena arena; + Arena_init(&arena, &system_allocator, 1024); + T_ASSERT_EQ(arena.capacity, 1024); + T_ASSERT_EQ(arena.size, 0); + T_ASSERT_NOT_NULL(arena.data); + Arena_deinit(&arena, &system_allocator); +} + +void t_arena_allocate(void) { + Arena arena; + Arena_init(&arena, &system_allocator, 10); + void *ptr = Arena_allocate(&arena, 10); + T_ASSERT_NOT_NULL(ptr); + T_ASSERT_EQ(arena.size, 10); + T_ASSERT_EQ(arena.capacity, 10); + Arena_deinit(&arena, &system_allocator); +} + +void t_arena_allocate_array(void) { + Arena arena; + Arena_init(&arena, &system_allocator, 100); + void *ptr = Arena_allocate_array(&arena, 10, sizeof(int)); + T_ASSERT_NOT_NULL(ptr); + T_ASSERT_EQ(arena.size, 10 * sizeof(int)); + T_ASSERT_EQ(arena.capacity, 100); + Arena_deinit(&arena, &system_allocator); +} + +void t_arena_allocate_clear(void) { + Arena arena; + Arena_init(&arena, &system_allocator, 100); + Arena_allocate(&arena, 8); + T_ASSERT_EQ(arena.size, 8); + T_ASSERT_EQ(arena.capacity, 100); + Arena_allocate(&arena, 4); + T_ASSERT_EQ(arena.size, 12); + T_ASSERT_EQ(arena.capacity, 100); + Arena_clear(&arena); + T_ASSERT_EQ(arena.size, 0); + T_ASSERT_EQ(arena.capacity, 100); + Arena_deinit(&arena, &system_allocator); +} + +TEST_SUITE(TEST(t_arena_create), TEST(t_arena_allocate), + TEST(t_arena_allocate_array), TEST(t_arena_allocate_clear)) |
