]> git.lizzy.rs Git - dragonstd.git/blobdiff - dragonstd/test/test_list.c
Add CMake config
[dragonstd.git] / dragonstd / test / test_list.c
diff --git a/dragonstd/test/test_list.c b/dragonstd/test/test_list.c
new file mode 100644 (file)
index 0000000..8f47d30
--- /dev/null
@@ -0,0 +1,47 @@
+#include <assert.h>
+#include <stdio.h>
+#include "../list.h"
+
+int cmp_int(const int *ia, const int *ib)
+{
+       return *ia - *ib;
+}
+
+int main()
+{
+       printf("------------\n");
+       printf("Testing List\n");
+       printf("------------\n");
+
+       List list;
+
+       printf("testing ini\n");
+       list_ini(&list);
+
+       int a = 0;
+       int b = 1;
+       int c = 2;
+       int d = 2;
+       int e = 3;
+
+       printf("testing add\n");
+       assert(list_add(&list, &a, &a, &cmp_int, NULL));
+       assert(list_add(&list, &b, &b, &cmp_int, NULL));
+       assert(list_add(&list, &c, &c, &cmp_int, NULL));
+       assert(!list_add(&list, &d, &d, &cmp_int, NULL));
+
+       printf("testing get\n");
+       assert(list_get(&list, &a, &cmp_int, NULL) == &a);
+       assert(list_get(&list, &b, &cmp_int, NULL) == &b);
+       assert(list_get(&list, &c, &cmp_int, NULL) == &c);
+       assert(list_get(&list, &d, &cmp_int, NULL) == &c);
+       assert(list_get(&list, &e, &cmp_int, NULL) == NULL);
+
+       printf("testing del\n");
+       assert(list_del(&list, &a, &cmp_int, NULL, NULL, NULL));
+       assert(list_get(&list, &a, &cmp_int, NULL) == NULL);
+
+       printf("testing clr\n");
+       list_clr(&list, NULL, NULL, NULL);
+       assert(list_get(&list, &b, &cmp_int, NULL) == NULL);
+}