tests/test_hash_map.c

changeset 1388
edc34e904fe3
parent 1387
9bdd053820b7
--- a/tests/test_hash_map.c	Mon Sep 22 19:22:23 2025 +0200
+++ b/tests/test_hash_map.c	Tue Sep 23 20:19:31 2025 +0200
@@ -534,6 +534,35 @@
     }
 }
 
+CX_TEST(test_null_map_iterator) {
+    CxMap *map = NULL;
+
+    CxMapIterator it1 = cxMapIterator(map);
+    CxMapIterator it2 = cxMapIteratorValues(map);
+    CxMapIterator it3 = cxMapIteratorKeys(map);
+    CxMapIterator it4 = cxMapMutIterator(map);
+    CxMapIterator it5 = cxMapMutIteratorValues(map);
+    CxMapIterator it6 = cxMapMutIteratorKeys(map);
+
+    CX_TEST_DO {
+        CX_TEST_ASSERT(!cxIteratorValid(it1));
+        CX_TEST_ASSERT(!cxIteratorValid(it2));
+        CX_TEST_ASSERT(!cxIteratorValid(it3));
+        CX_TEST_ASSERT(!cxIteratorValid(it4));
+        CX_TEST_ASSERT(!cxIteratorValid(it5));
+        CX_TEST_ASSERT(!cxIteratorValid(it6));
+
+        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_foreach(void*, data, it5) c++;
+        cx_foreach(void*, data, it6) c++;
+        CX_TEST_ASSERT(c == 0);
+    }
+}
+
 CX_TEST(test_empty_map_no_ops) {
     CX_TEST_DO {
         // assertion not possible
@@ -817,6 +846,7 @@
     cx_test_register(suite, test_empty_map_size);
     cx_test_register(suite, test_empty_map_get);
     cx_test_register(suite, test_empty_map_iterator);
+    cx_test_register(suite, test_null_map_iterator);
     cx_test_register(suite, test_hash_map_generics);
 
     return suite;

mercurial