index f1ea1fc09fd27baa7aac336cd3b3ba5047b43bbb..3526e4107df078c5fa2f3aa99913f25659bccbf3 100644 (file)
/* 'a' thru 'o' */
static sdb_object_t test_data[] = {
- SSTRING_OBJ("h"),
- SSTRING_OBJ("j"),
- SSTRING_OBJ("i"),
- SSTRING_OBJ("f"),
- SSTRING_OBJ("e"),
- SSTRING_OBJ("g"),
- 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"),
+ SDB_OBJECT_STATIC("h"),
+ SDB_OBJECT_STATIC("j"),
+ SDB_OBJECT_STATIC("i"),
+ SDB_OBJECT_STATIC("f"),
+ SDB_OBJECT_STATIC("e"),
+ SDB_OBJECT_STATIC("g"),
+ SDB_OBJECT_STATIC("k"),
+ SDB_OBJECT_STATIC("l"),
+ SDB_OBJECT_STATIC("m"),
+ SDB_OBJECT_STATIC("n"),
+ SDB_OBJECT_STATIC("o"),
+ SDB_OBJECT_STATIC("d"),
+ SDB_OBJECT_STATIC("c"),
+ SDB_OBJECT_STATIC("b"),
+ SDB_OBJECT_STATIC("a"),
};
+static char *unused_names[] = { "x", "y", "z" };
+
static void
populate(void)
{
START_TEST(test_null)
{
- sdb_object_t o1 = SSTRING_OBJ("obj");
+ sdb_object_t o1 = SDB_OBJECT_STATIC("obj");
sdb_object_t *o2;
sdb_avltree_iter_t *iter;
int check;
}
END_TEST
+START_TEST(test_lookup)
+{
+ size_t i;
+
+ populate();
+
+ for (i = 0; i < SDB_STATIC_ARRAY_LEN(test_data); ++i) {
+ sdb_object_t ref = SDB_OBJECT_STATIC(test_data[i].name);
+ sdb_object_t *obj;
+
+ obj = sdb_avltree_lookup(tree, &ref);
+ fail_unless(obj != NULL,
+ "sdb_avltree_lookup(<tree>, <%s>) = NULL; "
+ "expected: <obj>", ref.name);
+ fail_unless(obj == &test_data[i],
+ "sdb_avltree_lookup(<tree>, <%s>) = %p (%s); "
+ "expected: %p, (%s)", ref.name, obj, obj->name,
+ &test_data[i], test_data[i].name);
+ }
+
+ for (i = 0; i < SDB_STATIC_ARRAY_LEN(unused_names); ++i) {
+ sdb_object_t ref = SDB_OBJECT_STATIC(unused_names[i]);
+ sdb_object_t *obj;
+
+ obj = sdb_avltree_lookup(tree, &ref);
+ fail_unless(obj == NULL,
+ "sdb_avltree_lookup(<tree>, <%s> = %p (%s); "
+ "expected: NULL", ref.name, obj, obj ? obj->name : "<nil>");
+ }
+}
+END_TEST
+
START_TEST(test_iter)
{
sdb_avltree_iter_t *iter;
tcase_add_checked_fixture(tc, setup, teardown);
tcase_add_test(tc, test_null);
tcase_add_test(tc, test_insert);
+ tcase_add_test(tc, test_lookup);
tcase_add_test(tc, test_iter);
suite_add_tcase(s, tc);