fix that a particular tree test was never executed default tip

Sat, 22 Nov 2025 19:16:27 +0100

author
Mike Becker <universe@uap-core.de>
date
Sat, 22 Nov 2025 19:16:27 +0100
changeset 1506
2a4339475bcf
parent 1505
ce23605058d9

fix that a particular tree test was never executed

bonus: the test was broken

tests/test_tree.c file | annotate | diff | comparison | revisions
--- a/tests/test_tree.c	Sat Nov 22 19:16:10 2025 +0100
+++ b/tests/test_tree.c	Sat Nov 22 19:16:27 2025 +0100
@@ -1010,20 +1010,25 @@
 }
 
 CX_TEST(test_tree_visitor_create_and_dispose) {
-    tree_node root;
-    tree_node child;
+    tree_node root = {0};
+    tree_node child = {0};
+    tree_node child2 = {0};
     cx_tree_link(&root, &child, tree_node_layout);
+    cx_tree_link(&root, &child2, tree_node_layout);
     CX_TEST_DO {
         CxTreeVisitor iter = cx_tree_visitor(&root, tree_children(tree_node));
         CX_TEST_ASSERT(iter.counter == 1);
         CX_TEST_ASSERT(iter.node == &root);
         CX_TEST_ASSERT(!iter.base.allow_remove);
         CX_TEST_ASSERT(!iter.base.remove);
-        CX_TEST_ASSERT(iter.queue_next != NULL);
-        CX_TEST_ASSERT(iter.queue_last != NULL);
         CX_TEST_ASSERT(iter.depth == 1);
         CX_TEST_ASSERT(iter.loc_next == offsetof(tree_node, next));
         CX_TEST_ASSERT(iter.loc_children == offsetof(tree_node, children));
+        cxIteratorNext(iter);
+        CX_TEST_ASSERT(iter.queue_next != NULL);
+        CX_TEST_ASSERT(iter.queue_last != NULL);
+        CX_TEST_ASSERT(iter.queue_next->node == &child2);
+        CX_TEST_ASSERT(iter.queue_last->node == &child2);
         cxTreeVisitorDispose(&iter);
         CX_TEST_ASSERT(iter.queue_next == NULL);
         CX_TEST_ASSERT(iter.queue_last == NULL);
@@ -1910,7 +1915,7 @@
 CX_TEST(test_tree_high_create_simple) {
     CX_TEST_DO {
         CxTree *tree = cxTreeCreateSimple(
-                cxDefaultAllocator,
+                NULL, // shall fall back to the default allocator
                 tree_node_file_create_hl,
                 tree_node_file_search,
                 tree_node_file_search_data
@@ -1940,7 +1945,7 @@
     cx_tree_link(&root, &child2, tree_node_layout);
     cx_tree_link(&child1, &child3, tree_node_layout);
     CX_TEST_DO {
-        CxTree *tree = cxTreeCreateWrapped(cxDefaultAllocator, &root, tree_node_layout);
+        CxTree *tree = cxTreeCreateWrapped(NULL, &root, tree_node_layout);
         CX_TEST_ASSERT(tree->cl != NULL);
         CX_TEST_ASSERT(tree->allocator == cxDefaultAllocator);
         CX_TEST_ASSERT(tree->node_create == NULL);
@@ -2352,6 +2357,7 @@
     cx_test_register(suite, test_tree_iterator_subtree_enter_and_exit);
     cx_test_register(suite, test_tree_iterator_xml);
     cx_test_register(suite, test_tree_iterator_free_nodes);
+    cx_test_register(suite, test_tree_visitor_create_and_dispose);
     cx_test_register(suite, test_tree_visitor);
     cx_test_register(suite, test_tree_visitor_no_children);
     cx_test_register(suite, test_tree_visitor_no_branching);

mercurial