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 } |