tests/test_list.c

changeset 1388
edc34e904fe3
parent 1387
9bdd053820b7
--- a/tests/test_list.c	Mon Sep 22 19:22:23 2025 +0200
+++ b/tests/test_list.c	Tue Sep 23 20:19:31 2025 +0200
@@ -957,6 +957,29 @@
     }
 }
 
+CX_TEST(test_null_list_iterator) {
+    CxList *list = NULL;
+
+    CxIterator it1 = cxListIterator(list);
+    CxIterator it2 = cxListBackwardsIterator(list);
+    CxIterator it3 = cxListMutIterator(list);
+    CxIterator it4 = cxListMutBackwardsIterator(list);
+
+    CX_TEST_DO {
+        CX_TEST_ASSERT(!cxIteratorValid(it1));
+        CX_TEST_ASSERT(!cxIteratorValid(it2));
+        CX_TEST_ASSERT(!cxIteratorValid(it3));
+        CX_TEST_ASSERT(!cxIteratorValid(it4));
+
+        int c = 0;
+        cx_foreach(void*, data, it1) c++;
+        cx_foreach(void*, data, it2) c++;
+        cx_foreach(void*, data, it3) c++;
+        cx_foreach(void*, data, it4) c++;
+        CX_TEST_ASSERT(c == 0);
+    }
+}
+
 CX_TEST(test_empty_list_noops) {
     CX_TEST_DO {
         CxList copy = *cxEmptyList;
@@ -2407,6 +2430,7 @@
 
     cx_test_register(suite, test_empty_list_size);
     cx_test_register(suite, test_empty_list_iterator);
+    cx_test_register(suite, test_null_list_iterator);
     cx_test_register(suite, test_empty_list_noops);
     cx_test_register(suite, test_empty_list_at);
     cx_test_register(suite, test_empty_list_find);

mercurial