--- 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;