Skip to content

Commit 91dc543

Browse files
committed
Add unit test for list_push/list_remove
1 parent 705ffb2 commit 91dc543

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

app/test_utils.c

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,36 @@ void test_list_node_pushback_and_remove(void)
345345
ASSERT_TEST(list_is_empty(list), "Empty list check ");
346346
}
347347

348+
/* Test 12: List helpers behavior */
349+
void test_list_pushback_and_remove(void)
350+
{
351+
list_t *list = list_create();
352+
353+
int node1 = 1;
354+
int node2 = 2;
355+
356+
/* Check node push back normally - unlinked and linked */
357+
list_pushback(list, &node1);
358+
ASSERT_TEST(list->length == 1 && *(int *) (list->head->next->data) == 1,
359+
"Data push back into a new list ");
360+
361+
list_pushback(list, &node2);
362+
ASSERT_TEST(
363+
list->length == 2 && *(int *) (list->head->next->next->data) == 2,
364+
"Second data pushback successful ");
365+
366+
/* Remove last node */
367+
list_remove(list, list->head->next);
368+
ASSERT_TEST(list->length == 1 && *(int *) (list->head->next->data) == 2,
369+
"Remove first data ");
370+
371+
/* Remove non-existing node (second time) */
372+
list_remove(list, list->head->next);
373+
ASSERT_TEST(list->length == 0, "Unlinked node pushback success ");
374+
375+
ASSERT_TEST(list_is_empty(list), "Empty list check ");
376+
}
377+
348378
void test_runner(void)
349379
{
350380
printf("\n=== LibC Test Suite ===\n");
@@ -364,6 +394,7 @@ void test_runner(void)
364394

365395
printf("\n=== List Test Suite ===\n");
366396
test_list_node_pushback_and_remove();
397+
test_list_pushback_and_remove();
367398

368399
printf("\n=== Test Summary ===\n");
369400
printf("Tests run: %d\n", tests_run);

0 commit comments

Comments
 (0)