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