X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=t%2Funit%2Futils%2Favltree_test.c;h=9b48fdcb2ea44e8f60c53ee5c1474348e9d3d566;hb=bfa50b54968ce2c594cb3344534b44529bba8312;hp=d978eff9da688fc4306728f060db34a9a9e04609;hpb=4a307afc0bddeba03e26d2d6d284b3f96f80a931;p=sysdb.git diff --git a/t/unit/utils/avltree_test.c b/t/unit/utils/avltree_test.c index d978eff..9b48fdc 100644 --- a/t/unit/utils/avltree_test.c +++ b/t/unit/utils/avltree_test.c @@ -47,19 +47,23 @@ teardown(void) tree = NULL; } /* teardown */ -/* 'a' - 'k' */ +/* 'a' thru 'o' */ static sdb_object_t test_data[] = { - SSTRING_OBJ("d"), + SSTRING_OBJ("h"), + SSTRING_OBJ("j"), + SSTRING_OBJ("i"), SSTRING_OBJ("f"), SSTRING_OBJ("e"), - SSTRING_OBJ("b"), - SSTRING_OBJ("a"), - SSTRING_OBJ("c"), SSTRING_OBJ("g"), - SSTRING_OBJ("h"), - SSTRING_OBJ("i"), - SSTRING_OBJ("j"), SSTRING_OBJ("k"), + SSTRING_OBJ("l"), + SSTRING_OBJ("m"), + SSTRING_OBJ("n"), + SSTRING_OBJ("o"), + SSTRING_OBJ("d"), + SSTRING_OBJ("c"), + SSTRING_OBJ("b"), + SSTRING_OBJ("a"), }; static void @@ -127,6 +131,21 @@ START_TEST(test_insert) "sdb_avltree_size() = %d; expected: %zu", check, i + 1); } + + /* and again ... now reporting errors because of duplicates */ + for (i = 0; i < SDB_STATIC_ARRAY_LEN(test_data); ++i) { + int check; + + check = sdb_avltree_insert(tree, &test_data[i]); + fail_unless(check < 0, + "sdb_avltree_insert(, <%s>) = %d (redo); expected: <0", + test_data[i].name, check); + + check = (int)sdb_avltree_size(tree); + fail_unless(check == SDB_STATIC_ARRAY_LEN(test_data), + "sdb_avltree_size() = %d; expected: %zu", + check, SDB_STATIC_ARRAY_LEN(test_data)); + } } END_TEST @@ -171,6 +190,12 @@ START_TEST(test_iter) "sdb_avltree_iter_get_next() = ; expected: NULL"); sdb_avltree_iter_destroy(iter); + + sdb_avltree_clear(tree); + check = sdb_avltree_size(tree); + fail_unless(check == 0, + "sdb_avltree_clear() left %zu nodes in the tree; " + "expected: 0", check); } END_TEST