aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2020-11-29 22:27:09 -0700
committerJosh Rahm <joshuarahm@gmail.com>2020-11-29 22:27:09 -0700
commitd2adb901779e0069ecbd023114d5e689cebf2eba (patch)
tree9fb20bcd90e81fccefe73e46ad4d5014eb00f8b8 /tests
parent9caddf6c5c0dce43a531c3dc8cf2831195ea0876 (diff)
downloadstm32l4-d2adb901779e0069ecbd023114d5e689cebf2eba.tar.gz
stm32l4-d2adb901779e0069ecbd023114d5e689cebf2eba.tar.bz2
stm32l4-d2adb901779e0069ecbd023114d5e689cebf2eba.zip
Add linked list header.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_linked_list.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/test_linked_list.c b/tests/test_linked_list.c
new file mode 100644
index 0000000..401091a
--- /dev/null
+++ b/tests/test_linked_list.c
@@ -0,0 +1,41 @@
+#include "kern/mem.h"
+#include "shared/linked_list.h"
+#include "test_harness.h"
+
+LINKED_LIST_STATIC_DECL(int);
+LINKED_LIST_STATIC_IMPL(int);
+
+TEST(linked_list, smell)
+{
+ linked_list_t(int) ll = LINKED_LIST_INIT;
+
+ ASSERT_EQ(linked_list_length(int)(&ll), 0);
+
+ linked_list_push_front(int)(&ll, 5);
+ ASSERT_EQ(linked_list_length(int)(&ll), 1);
+
+ linked_list_push_front(int)(&ll, 3);
+ linked_list_push_back(int)(&ll, 2);
+
+ ASSERT_EQ(linked_list_length(int)(&ll), 3);
+ ASSERT_EQ(*linked_list_front(int)(&ll), 3);
+ ASSERT_EQ(*linked_list_back(int)(&ll), 2);
+
+ linked_list_push_back(int)(&ll, 7);
+ ASSERT_EQ(*linked_list_back(int)(&ll), 7);
+ linked_list_pop_back(int)(&ll);
+ ASSERT_EQ(*linked_list_back(int)(&ll), 2);
+
+ linked_list_pop_front(int)(&ll);
+
+ ASSERT_EQ(*linked_list_front(int)(&ll), 5);
+
+ linked_list_pop_front(int)(&ll);
+
+ ASSERT_EQ(*linked_list_front(int)(&ll), 2);
+
+ linked_list_pop_front(int)(&ll);
+
+ ASSERT_EQ(linked_list_front(int)(&ll), NULL);
+ return 0;
+}