tests/test_tree.c

changeset 1506
2a4339475bcf
parent 1429
6e0c3a8a914a
equal deleted inserted replaced
1505:ce23605058d9 1506:2a4339475bcf
1008 } 1008 }
1009 cx_testing_allocator_destroy(&talloc); 1009 cx_testing_allocator_destroy(&talloc);
1010 } 1010 }
1011 1011
1012 CX_TEST(test_tree_visitor_create_and_dispose) { 1012 CX_TEST(test_tree_visitor_create_and_dispose) {
1013 tree_node root; 1013 tree_node root = {0};
1014 tree_node child; 1014 tree_node child = {0};
1015 tree_node child2 = {0};
1015 cx_tree_link(&root, &child, tree_node_layout); 1016 cx_tree_link(&root, &child, tree_node_layout);
1017 cx_tree_link(&root, &child2, tree_node_layout);
1016 CX_TEST_DO { 1018 CX_TEST_DO {
1017 CxTreeVisitor iter = cx_tree_visitor(&root, tree_children(tree_node)); 1019 CxTreeVisitor iter = cx_tree_visitor(&root, tree_children(tree_node));
1018 CX_TEST_ASSERT(iter.counter == 1); 1020 CX_TEST_ASSERT(iter.counter == 1);
1019 CX_TEST_ASSERT(iter.node == &root); 1021 CX_TEST_ASSERT(iter.node == &root);
1020 CX_TEST_ASSERT(!iter.base.allow_remove); 1022 CX_TEST_ASSERT(!iter.base.allow_remove);
1021 CX_TEST_ASSERT(!iter.base.remove); 1023 CX_TEST_ASSERT(!iter.base.remove);
1022 CX_TEST_ASSERT(iter.queue_next != 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));
1026 CX_TEST_ASSERT(iter.loc_children == offsetof(tree_node, children)); 1026 CX_TEST_ASSERT(iter.loc_children == offsetof(tree_node, children));
1027 cxIteratorNext(iter);
1028 CX_TEST_ASSERT(iter.queue_next != NULL);
1029 CX_TEST_ASSERT(iter.queue_last != NULL);
1030 CX_TEST_ASSERT(iter.queue_next->node == &child2);
1031 CX_TEST_ASSERT(iter.queue_last->node == &child2);
1027 cxTreeVisitorDispose(&iter); 1032 cxTreeVisitorDispose(&iter);
1028 CX_TEST_ASSERT(iter.queue_next == NULL); 1033 CX_TEST_ASSERT(iter.queue_next == NULL);
1029 CX_TEST_ASSERT(iter.queue_last == NULL); 1034 CX_TEST_ASSERT(iter.queue_last == NULL);
1030 } 1035 }
1031 } 1036 }
1908 } 1913 }
1909 1914
1910 CX_TEST(test_tree_high_create_simple) { 1915 CX_TEST(test_tree_high_create_simple) {
1911 CX_TEST_DO { 1916 CX_TEST_DO {
1912 CxTree *tree = cxTreeCreateSimple( 1917 CxTree *tree = cxTreeCreateSimple(
1913 cxDefaultAllocator, 1918 NULL, // shall fall back to the default allocator
1914 tree_node_file_create_hl, 1919 tree_node_file_create_hl,
1915 tree_node_file_search, 1920 tree_node_file_search,
1916 tree_node_file_search_data 1921 tree_node_file_search_data
1917 ); 1922 );
1918 CX_TEST_ASSERT(tree->cl != NULL); 1923 CX_TEST_ASSERT(tree->cl != NULL);
1938 tree_node root = {0}, child1 = {0}, child2 = {0}, child3 = {0}; 1943 tree_node root = {0}, child1 = {0}, child2 = {0}, child3 = {0};
1939 cx_tree_link(&root, &child1, tree_node_layout); 1944 cx_tree_link(&root, &child1, tree_node_layout);
1940 cx_tree_link(&root, &child2, tree_node_layout); 1945 cx_tree_link(&root, &child2, tree_node_layout);
1941 cx_tree_link(&child1, &child3, tree_node_layout); 1946 cx_tree_link(&child1, &child3, tree_node_layout);
1942 CX_TEST_DO { 1947 CX_TEST_DO {
1943 CxTree *tree = cxTreeCreateWrapped(cxDefaultAllocator, &root, tree_node_layout); 1948 CxTree *tree = cxTreeCreateWrapped(NULL, &root, tree_node_layout);
1944 CX_TEST_ASSERT(tree->cl != NULL); 1949 CX_TEST_ASSERT(tree->cl != NULL);
1945 CX_TEST_ASSERT(tree->allocator == cxDefaultAllocator); 1950 CX_TEST_ASSERT(tree->allocator == cxDefaultAllocator);
1946 CX_TEST_ASSERT(tree->node_create == NULL); 1951 CX_TEST_ASSERT(tree->node_create == NULL);
1947 CX_TEST_ASSERT(tree->search == NULL); 1952 CX_TEST_ASSERT(tree->search == NULL);
1948 CX_TEST_ASSERT(tree->search_data == NULL); 1953 CX_TEST_ASSERT(tree->search_data == NULL);
2350 cx_test_register(suite, test_tree_iterator_basic_only_enter); 2355 cx_test_register(suite, test_tree_iterator_basic_only_enter);
2351 cx_test_register(suite, test_tree_iterator_basic_enter_and_exit); 2356 cx_test_register(suite, test_tree_iterator_basic_enter_and_exit);
2352 cx_test_register(suite, test_tree_iterator_subtree_enter_and_exit); 2357 cx_test_register(suite, test_tree_iterator_subtree_enter_and_exit);
2353 cx_test_register(suite, test_tree_iterator_xml); 2358 cx_test_register(suite, test_tree_iterator_xml);
2354 cx_test_register(suite, test_tree_iterator_free_nodes); 2359 cx_test_register(suite, test_tree_iterator_free_nodes);
2360 cx_test_register(suite, test_tree_visitor_create_and_dispose);
2355 cx_test_register(suite, test_tree_visitor); 2361 cx_test_register(suite, test_tree_visitor);
2356 cx_test_register(suite, test_tree_visitor_no_children); 2362 cx_test_register(suite, test_tree_visitor_no_children);
2357 cx_test_register(suite, test_tree_visitor_no_branching); 2363 cx_test_register(suite, test_tree_visitor_no_branching);
2358 cx_test_register(suite, test_tree_visitor_subtree); 2364 cx_test_register(suite, test_tree_visitor_subtree);
2359 cx_test_register(suite, test_tree_visitor_continue); 2365 cx_test_register(suite, test_tree_visitor_continue);

mercurial