From 24fbfb8c41c62b11506668a22074379115f57600 Mon Sep 17 00:00:00 2001 From: sanine Date: Fri, 24 Oct 2025 13:32:54 -0500 Subject: implement basic linked list append --- lichen.test.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'lichen.test.c') diff --git a/lichen.test.c b/lichen.test.c index 68d26d0..bca7d27 100644 --- a/lichen.test.c +++ b/lichen.test.c @@ -51,6 +51,36 @@ LILY_TEST("allocate, copy, and destroy llnode") { #include LILY_PUSH_TEST() + +LILY_TEST("append to list") { + struct li_ll_t *list = li_alloc_ll(); + REQUIRE_NEQ(list, NULL, "%p"); + + int a = 1; int b = 2; int c = 3; + + li_ll_append(list, &a); + CHECK_EQ(list->count, 1, "%d"); + REQUIRE_NEQ(list->head, NULL, "%p"); + CHECK_EQ(list->head->data, &a, "%p"); + CHECK_EQ(list->head->next, NULL, "%p"); + + li_ll_append(list, &b); + CHECK_EQ(list->count, 2, "%d"); + REQUIRE_NEQ(list->head->next, NULL, "%p"); + CHECK_EQ(list->head->next->data, &b, "%p"); + CHECK_EQ(list->head->next->next, NULL, "%p"); + + li_ll_append(list, &c); + CHECK_EQ(list->count, 3, "%d"); + REQUIRE_NEQ(list->head->next->next, NULL, "%p"); + CHECK_EQ(list->head->next->next->data, &c, "%p"); + CHECK_EQ(list->head->next->next->next, NULL, "%p"); + + li_free_ll(list, do_nothing); +} +#include LILY_PUSH_TEST() + + #define LILY_FILE_END #include LILY_REGISTER_TESTS() -- cgit v1.2.1