diff options
| author | Douglas B. Rumbaugh <doug@douglasrumbaugh.com> | 2025-11-02 17:57:17 -0500 |
|---|---|---|
| committer | Douglas B. Rumbaugh <doug@douglasrumbaugh.com> | 2025-11-02 17:57:17 -0500 |
| commit | 33be32d518e17c8f8971fa7c1fe09adcccd82a67 (patch) | |
| tree | f283d00a8724dea295f43b4b626c428a570a1560 /tests | |
| parent | d22ffffb379ebda21bf792bf18ed9e1324e8902b (diff) | |
| download | liballoc-33be32d518e17c8f8971fa7c1fe09adcccd82a67.tar.gz | |
Added splitting and some basic testing for it
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/liballoc_tests.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/liballoc_tests.c b/tests/liballoc_tests.c index 6e6b537..2d3a439 100644 --- a/tests/liballoc_tests.c +++ b/tests/liballoc_tests.c @@ -189,6 +189,34 @@ START_TEST(free_list_coalesce_backward) { } END_TEST +START_TEST(free_list_split_basic) { + size_t initial_size = ALIGNMENT * 10; + size_t second_size = ALIGNMENT * 5; + + void *memory = allocate(initial_size); + release(memory); + + void *memory2 = allocate(second_size); + ck_assert_ptr_eq(memory, memory2); + + ck_assert_ptr_nonnull(free_list_head()); + +} +END_TEST + +START_TEST(free_list_split_below_threshold) { + size_t initial_size = 5*ALIGNMENT; + size_t second_size = 2*ALIGNMENT; + + void *memory = allocate(initial_size); + release(memory); + + void *memory2 = allocate(second_size); + ck_assert_ptr_eq(memory, memory2); + + ck_assert_ptr_null(free_list_head()); +} + Suite *liballoc_suite(void) { @@ -207,6 +235,8 @@ Suite *liballoc_suite(void) { tcase_add_test(unit, free_list_reuse); tcase_add_test(unit, free_list_coalesce_forward); tcase_add_test(unit, free_list_coalesce_backward); + tcase_add_test(unit, free_list_split_basic); + tcase_add_test(unit, free_list_split_below_threshold); suite_add_tcase(s, unit); return s; |