tests/test_tree.c

changeset 1605
55b13f583356
parent 1549
72ad8a78378a
child 1607
0ecb13118cac
equal deleted inserted replaced
1604:68b75c091028 1605:55b13f583356
2186 2186
2187 cxFree(alloc, usr); 2187 cxFree(alloc, usr);
2188 // for the subtree, we use a little trick and wrap it in a new tree 2188 // for the subtree, we use a little trick and wrap it in a new tree
2189 CxTree *foo_tree = cxTreeCreateWrapped(alloc, foo, tree_node_file_layout); 2189 CxTree *foo_tree = cxTreeCreateWrapped(alloc, foo, tree_node_file_layout);
2190 foo_tree->collection.allocator = alloc; 2190 foo_tree->collection.allocator = alloc;
2191 cxDefineAdvancedDestructor(foo_tree, cxFree, alloc); 2191 cxSetAdvancedDestructor(foo_tree, cxFree, alloc);
2192 cxTreeFree(foo_tree); 2192 cxTreeFree(foo_tree);
2193 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); 2193 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
2194 } 2194 }
2195 cx_testing_allocator_destroy(&talloc); 2195 cx_testing_allocator_destroy(&talloc);
2196 } 2196 }
2304 CX_TEST_ASSERT(tree->root == NULL); 2304 CX_TEST_ASSERT(tree->root == NULL);
2305 CX_TEST_ASSERT(cxTreeDepth(tree) == 0); 2305 CX_TEST_ASSERT(cxTreeDepth(tree) == 0);
2306 cxTreeFree(tree); 2306 cxTreeFree(tree);
2307 CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc)); 2307 CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc));
2308 CxTree *w = cxTreeCreateWrapped(alloc, root, tree_node_file_layout); 2308 CxTree *w = cxTreeCreateWrapped(alloc, root, tree_node_file_layout);
2309 cxDefineAdvancedDestructor(w, cxFree, alloc); 2309 cxSetAdvancedDestructor(w, cxFree, alloc);
2310 cxTreeDestroySubtree(w, w->root); 2310 cxTreeDestroySubtree(w, w->root);
2311 CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc)); 2311 CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc));
2312 cxTreeFree(w); 2312 cxTreeFree(w);
2313 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); 2313 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
2314 } 2314 }
2324 cx_tree_link(&root, &child1, tree_node_layout); 2324 cx_tree_link(&root, &child1, tree_node_layout);
2325 cx_tree_link(&root, &child2, tree_node_layout); 2325 cx_tree_link(&root, &child2, tree_node_layout);
2326 cx_tree_link(&child1, &child3, tree_node_layout); 2326 cx_tree_link(&child1, &child3, tree_node_layout);
2327 CX_TEST_DO { 2327 CX_TEST_DO {
2328 CxTree *tree = cxTreeCreateWrapped(cxDefaultAllocator, &root, tree_node_layout); 2328 CxTree *tree = cxTreeCreateWrapped(cxDefaultAllocator, &root, tree_node_layout);
2329 cxDefineDestructor(tree,test_tree_high_simple_destructor_func); 2329 cxSetDestructor(tree,test_tree_high_simple_destructor_func);
2330 cxTreeDestroyNode(tree, &child1, NULL); 2330 cxTreeDestroyNode(tree, &child1, NULL);
2331 cxTreeFree(tree); 2331 cxTreeFree(tree);
2332 CX_TEST_ASSERT(root.data == 1); 2332 CX_TEST_ASSERT(root.data == 1);
2333 CX_TEST_ASSERT(child1.data == 1); 2333 CX_TEST_ASSERT(child1.data == 1);
2334 CX_TEST_ASSERT(child2.data == 1); 2334 CX_TEST_ASSERT(child2.data == 1);

mercurial