aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/test_linked_list.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/test_linked_list.c b/tests/test_linked_list.c
index 7ec96b5..2c51625 100644
--- a/tests/test_linked_list.c
+++ b/tests/test_linked_list.c
@@ -60,3 +60,25 @@ TEST(linked_list, foreach)
return 0;
}
+
+TEST(linked_list, remove)
+{
+ linked_list_t(int) ll = LINKED_LIST_INIT;
+ linked_list_push_front(int)(&ll, 1);
+ linked_list_push_front(int)(&ll, 2);
+ linked_list_push_front(int)(&ll, 3);
+ linked_list_push_front(int)(&ll, 4);
+ linked_list_push_front(int)(&ll, 4);
+
+ int ec = linked_list_remove(int)(&ll, 4);
+ ASSERT_EQ(!!ec, 1);
+ ec = linked_list_remove(int)(&ll, 2);
+ ASSERT_EQ(!!ec, 1);
+ ec = linked_list_remove(int)(&ll, 1);
+ ASSERT_EQ(!!ec, 1);
+
+ ASSERT_EQ(linked_list_length(int)(&ll), 1);
+ ASSERT_EQ(*linked_list_front(int)(&ll), 3);
+
+ return 0;
+}