Code

avltree: Add sdb_avltree_iter_peek_next().
[sysdb.git] / t / unit / utils / avltree_test.c
index 4f6933acf6acb94e185acf0f39fd3c8e55a48b77..433f67d7ea42d89151aa0b4f4336696f2e7a7213 100644 (file)
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+#if HAVE_CONFIG_H
+#      include "config.h"
+#endif
+
 #include "utils/avltree.h"
-#include "libsysdb_test.h"
+#include "testutils.h"
 
 #include <check.h>
 
@@ -205,11 +209,17 @@ START_TEST(test_iter)
 
        for (i = 0; i < SDB_STATIC_ARRAY_LEN(test_data); ++i) {
                char expected_name[] = { (char)('a' + (int)i), '\0' };
+               sdb_object_t *expected_obj;
 
                _Bool c = sdb_avltree_iter_has_next(iter);
                fail_unless(c, "sdb_avltree_iter_has_next(<iter[%zu]>) = false; "
                                "expected: true", i);
 
+               expected_obj = sdb_avltree_iter_peek_next(iter);
+               fail_unless(expected_obj != NULL,
+                               "sdb_avltree_iter_peek_next(<iter[%zu]>) = NULL; "
+                               "expected: <obj>", i);
+
                obj = sdb_avltree_iter_get_next(iter);
                fail_unless(obj != NULL,
                                "sdb_avltree_iter_get_next(<iter[%zu]>) = NULL; "
@@ -217,11 +227,18 @@ START_TEST(test_iter)
                fail_unless(!strcmp(obj->name, expected_name),
                                "sdb_avltree_iter[%zu] = %s; expected: %s",
                                i, obj->name, expected_name);
+
+               fail_unless(obj == expected_obj,
+                               "sdb_avltree_iter_get_next(<iter[%zu]>) = %p; "
+                               "expected: %p (from peek())", i, obj, expected_obj);
        }
 
        check = sdb_avltree_iter_has_next(iter) != 0;
        fail_unless(check == 0, "sdb_avltree_iter_has_next(<iter>) = true; "
                        "expected: false");
+       obj = sdb_avltree_iter_peek_next(iter);
+       fail_unless(obj == NULL,
+                       "sdb_avltree_iter_peek_next(<iter>) = <obj>; expected: NULL");
        obj = sdb_avltree_iter_get_next(iter);
        fail_unless(obj == NULL,
                        "sdb_avltree_iter_get_next(<iter>) = <obj>; expected: NULL");
@@ -236,22 +253,17 @@ START_TEST(test_iter)
 }
 END_TEST
 
-Suite *
-util_avltree_suite(void)
+TEST_MAIN("utils::avltree")
 {
-       Suite *s = suite_create("utils::avltree");
-       TCase *tc;
-
-       tc = tcase_create("core");
+       TCase *tc = tcase_create("core");
        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);
-
-       return s;
-} /* util_avltree_suite */
+       ADD_TCASE(tc);
+}
+TEST_MAIN_END
 
 /* vim: set tw=78 sw=4 ts=4 noexpandtab : */