aboutsummaryrefslogtreecommitdiff
path: root/test/test_list.c
diff options
context:
space:
mode:
authorAlessandro Iezzi <aiezzi@alessandroiezzi.it>2023-05-10 18:17:02 +0200
committerAlessandro Iezzi <aiezzi@alessandroiezzi.it>2023-05-10 18:17:02 +0200
commit03798ebc89704aaf45b3e3ae3cac5d7a14c346f5 (patch)
treef50c2905a0e77659779c11882e014f67156e0cbf /test/test_list.c
parent5f43bd8eb00d1635385a42c77c7bbd0df35acc69 (diff)
downloadutils-03798ebc89704aaf45b3e3ae3cac5d7a14c346f5.tar.gz
utils-03798ebc89704aaf45b3e3ae3cac5d7a14c346f5.zip
Add test_list8()
Diffstat (limited to 'test/test_list.c')
-rw-r--r--test/test_list.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/test_list.c b/test/test_list.c
index 5aa324b..d56ad6b 100644
--- a/test/test_list.c
+++ b/test/test_list.c
@@ -226,3 +226,36 @@ test_list7()
log("OK\n");
}
+
+void
+test_list8()
+{
+ log("Running...");
+
+ struct test_struct {
+ char *data;
+ };
+
+ struct test_struct *s1 = malloc(sizeof(struct test_struct *));
+ struct test_struct *s2 = malloc(sizeof(struct test_struct *));
+
+ s1->data = strdup("A long, but very long long string");
+ s2->data = strdup("Lorem ipsum");
+
+ list_t l = clist_create();
+
+ clist_add(&l, s1, sizeof(s1));
+ clist_add(&l, s2, sizeof(s2));
+
+ iterator_t it = clist_iterator(&l);
+
+ assert(clist_iterator_has_next(it));
+ assert(strcmp(((struct test_struct *) clist_iterator_next(&it))->data, "A long, but very long long string") == 0);
+
+ assert(clist_iterator_has_next(it));
+ assert(strcmp(((struct test_struct *) clist_iterator_next(&it))->data, "Lorem ipsum") == 0);
+
+ assert(clist_iterator_has_next(it) == 0);
+
+ log("OK\n");
+}