tests/test_tree.c

changeset 907
1f72fb9af87e
parent 906
b51e5268bd9b
child 908
f49f8a7060aa
equal deleted inserted replaced
906:b51e5268bd9b 907:1f72fb9af87e
1787 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); 1787 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
1788 } 1788 }
1789 cx_testing_allocator_destroy(&talloc); 1789 cx_testing_allocator_destroy(&talloc);
1790 } 1790 }
1791 1791
1792 CX_TEST(test_tree_high_remove_root) {
1793 CxTestingAllocator talloc;
1794 cx_testing_allocator_init(&talloc);
1795 CxAllocator *alloc = &talloc.base;
1796
1797 CX_TEST_DO {
1798 CxTree *tree = cxTreeCreate(
1799 alloc, tree_node_file_create_hl,
1800 tree_node_file_search, tree_node_file_search_data,
1801 tree_node_file_layout
1802 );
1803
1804 const char *paths[] = {
1805 "/",
1806 "/usr/",
1807 "/home/",
1808 "/usr/lib/",
1809 "/home/foo/",
1810 "/home/foo/bar/"
1811 };
1812 cxTreeInsertArray(tree, paths, sizeof(const char*), 6);
1813 void *root = tree->root;
1814 cxTreeRemove(tree, root);
1815 CX_TEST_ASSERT(tree->size == 0);
1816 CX_TEST_ASSERT(tree->root == NULL);
1817 CX_TEST_ASSERT(cxTreeDepth(tree) == 0);
1818 cxTreeDestroy(tree);
1819 CX_TEST_ASSERT(!cx_testing_allocator_verify(&talloc));
1820 CxTree *w = cxTreeCreateWrapped(alloc, root, tree_node_file_layout);
1821 w->advanced_destructor = (cx_destructor_func2) cxFree;
1822 w->destructor_data = alloc;
1823 cxTreeDestroy(w);
1824 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
1825 }
1826 cx_testing_allocator_destroy(&talloc);
1827 }
1828
1792 static void test_tree_high_simple_destructor_func(void *node) { 1829 static void test_tree_high_simple_destructor_func(void *node) {
1793 ((tree_node *)node)->data++; 1830 ((tree_node *)node)->data++;
1794 } 1831 }
1795 1832
1796 CX_TEST(test_tree_high_simple_destructor) { 1833 CX_TEST(test_tree_high_simple_destructor) {
1853 cx_test_register(suite, test_tree_high_create_wrapped); 1890 cx_test_register(suite, test_tree_high_create_wrapped);
1854 cx_test_register(suite, test_tree_high_tree_depth); 1891 cx_test_register(suite, test_tree_high_tree_depth);
1855 cx_test_register(suite, test_tree_high_insert_one); 1892 cx_test_register(suite, test_tree_high_insert_one);
1856 cx_test_register(suite, test_tree_high_insert_many); 1893 cx_test_register(suite, test_tree_high_insert_many);
1857 cx_test_register(suite, test_tree_high_add_find_remove_nodes); 1894 cx_test_register(suite, test_tree_high_add_find_remove_nodes);
1895 cx_test_register(suite, test_tree_high_remove_root);
1858 cx_test_register(suite, test_tree_high_simple_destructor); 1896 cx_test_register(suite, test_tree_high_simple_destructor);
1859 1897
1860 return suite; 1898 return suite;
1861 } 1899 }

mercurial