tests/test_tree.c

changeset 1429
6e0c3a8a914a
parent 1319
aa1f580f8f59
equal deleted inserted replaced
1428:0ac4aa1737fd 1429:6e0c3a8a914a
655 CxTreeIterator iter = cx_tree_iterator(&root, false, tree_children(tree_node)); 655 CxTreeIterator iter = cx_tree_iterator(&root, false, tree_children(tree_node));
656 CX_TEST_ASSERT(!iter.visit_on_exit); 656 CX_TEST_ASSERT(!iter.visit_on_exit);
657 CX_TEST_ASSERT(!iter.exiting); 657 CX_TEST_ASSERT(!iter.exiting);
658 CX_TEST_ASSERT(iter.counter == 1); 658 CX_TEST_ASSERT(iter.counter == 1);
659 CX_TEST_ASSERT(iter.node == &root); 659 CX_TEST_ASSERT(iter.node == &root);
660 CX_TEST_ASSERT(!iter.base.mutating); 660 CX_TEST_ASSERT(!iter.base.allow_remove);
661 CX_TEST_ASSERT(!iter.base.remove); 661 CX_TEST_ASSERT(!iter.base.remove);
662 CX_TEST_ASSERT(iter.stack != NULL); 662 CX_TEST_ASSERT(iter.stack != NULL);
663 CX_TEST_ASSERT(iter.stack_capacity > 0); 663 CX_TEST_ASSERT(iter.stack_capacity > 0);
664 CX_TEST_ASSERT(iter.stack_size == 1); 664 CX_TEST_ASSERT(iter.stack_size == 1);
665 CX_TEST_ASSERT(iter.depth == 1); 665 CX_TEST_ASSERT(iter.depth == 1);
675 CxTreeIterator iter = cx_tree_iterator(NULL, false, tree_children(tree_node)); 675 CxTreeIterator iter = cx_tree_iterator(NULL, false, tree_children(tree_node));
676 CX_TEST_ASSERT(!iter.visit_on_exit); 676 CX_TEST_ASSERT(!iter.visit_on_exit);
677 CX_TEST_ASSERT(!iter.exiting); 677 CX_TEST_ASSERT(!iter.exiting);
678 CX_TEST_ASSERT(iter.counter == 0); 678 CX_TEST_ASSERT(iter.counter == 0);
679 CX_TEST_ASSERT(iter.node == NULL); 679 CX_TEST_ASSERT(iter.node == NULL);
680 CX_TEST_ASSERT(!iter.base.mutating); 680 CX_TEST_ASSERT(!iter.base.allow_remove);
681 CX_TEST_ASSERT(!iter.base.remove); 681 CX_TEST_ASSERT(!iter.base.remove);
682 CX_TEST_ASSERT(iter.stack == NULL); 682 CX_TEST_ASSERT(iter.stack == NULL);
683 CX_TEST_ASSERT(iter.stack_capacity == 0); 683 CX_TEST_ASSERT(iter.stack_capacity == 0);
684 CX_TEST_ASSERT(iter.stack_size == 0); 684 CX_TEST_ASSERT(iter.stack_size == 0);
685 CX_TEST_ASSERT(iter.depth == 0); 685 CX_TEST_ASSERT(iter.depth == 0);
1015 cx_tree_link(&root, &child, tree_node_layout); 1015 cx_tree_link(&root, &child, tree_node_layout);
1016 CX_TEST_DO { 1016 CX_TEST_DO {
1017 CxTreeVisitor iter = cx_tree_visitor(&root, tree_children(tree_node)); 1017 CxTreeVisitor iter = cx_tree_visitor(&root, tree_children(tree_node));
1018 CX_TEST_ASSERT(iter.counter == 1); 1018 CX_TEST_ASSERT(iter.counter == 1);
1019 CX_TEST_ASSERT(iter.node == &root); 1019 CX_TEST_ASSERT(iter.node == &root);
1020 CX_TEST_ASSERT(!iter.base.mutating); 1020 CX_TEST_ASSERT(!iter.base.allow_remove);
1021 CX_TEST_ASSERT(!iter.base.remove); 1021 CX_TEST_ASSERT(!iter.base.remove);
1022 CX_TEST_ASSERT(iter.queue_next != NULL); 1022 CX_TEST_ASSERT(iter.queue_next != NULL);
1023 CX_TEST_ASSERT(iter.queue_last != NULL); 1023 CX_TEST_ASSERT(iter.queue_last != NULL);
1024 CX_TEST_ASSERT(iter.depth == 1); 1024 CX_TEST_ASSERT(iter.depth == 1);
1025 CX_TEST_ASSERT(iter.loc_next == offsetof(tree_node, next)); 1025 CX_TEST_ASSERT(iter.loc_next == offsetof(tree_node, next));
1557 ); 1557 );
1558 CX_TEST_ASSERT(failed == NULL); 1558 CX_TEST_ASSERT(failed == NULL);
1559 CX_TEST_ASSERT(processed == 0); 1559 CX_TEST_ASSERT(processed == 0);
1560 CX_TEST_ASSERT(talloc.alloc_total == 0); 1560 CX_TEST_ASSERT(talloc.alloc_total == 0);
1561 1561
1562 CxIterator iter = cxIterator(NULL, sizeof(void *), 0); 1562 CxIterator iter = cxIterator(NULL, sizeof(void *), 0, false);
1563 processed = cx_tree_add_iter( 1563 processed = cx_tree_add_iter(
1564 cxIteratorRef(iter), 1564 cxIteratorRef(iter),
1565 10, // deliberately specify more than the iter has 1565 10, // deliberately specify more than the iter has
1566 tree_node_file_search, 1566 tree_node_file_search,
1567 tree_node_file_create, alloc, 1567 tree_node_file_create, alloc,
1667 "/home/foo/bar", 1667 "/home/foo/bar",
1668 "/usr/lib64/", 1668 "/usr/lib64/",
1669 "/usr/lib/foo.so" 1669 "/usr/lib/foo.so"
1670 }; 1670 };
1671 // create iterator for 4 elements, but choose to insert only 3 of them 1671 // create iterator for 4 elements, but choose to insert only 3 of them
1672 CxIterator iter = cxIterator(paths, sizeof(const char*), 4); 1672 CxIterator iter = cxIterator(paths, sizeof(const char*), 4, false);
1673 size_t processed = cx_tree_add_iter( 1673 size_t processed = cx_tree_add_iter(
1674 cxIteratorRef(iter), 3, 1674 cxIteratorRef(iter), 3,
1675 tree_node_file_search, 1675 tree_node_file_search,
1676 tree_node_file_create, alloc, 1676 tree_node_file_create, alloc,
1677 &failed, &root, tree_node_file_layout 1677 &failed, &root, tree_node_file_layout

mercurial