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