diff options
| author | Clement Sibille <clements+git@lisible.xyz> | 2024-05-20 01:02:14 +0900 |
|---|---|---|
| committer | Clement Sibille <clements+git@lisible.xyz> | 2024-05-20 01:28:21 +0900 |
| commit | d73919a0c717d4f4b6b7c50789f20432ec936361 (patch) | |
| tree | 42e8a55f8fbfe63fe620941c5143f9fd6d422b73 | |
| parent | 62eb3b371fffe75e0da5393cb558a472a177f4ce (diff) | |
Add missing tests for memory module
| -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)) |
