aboutsummaryrefslogtreecommitdiff
path: root/tests/database.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/database.c')
-rw-r--r--tests/database.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/database.c b/tests/database.c
new file mode 100644
index 0000000..18c7ec4
--- /dev/null
+++ b/tests/database.c
@@ -0,0 +1,42 @@
+/*
+ * tests/database.c
+ * (c) 2021 Jonas Gunz <himself@jonasgunz.de>
+ * License: MIT
+ */
+
+#include "tests.h"
+
+#include "../src/database.h"
+#include "../src/zonefile.h"
+
+START_TEST ( test_database_parse_zonefile ) {
+ int ret;
+ char qname[128];
+ int qname_len;
+ database_t db;
+ database_rdata_t data;
+
+ qname_len = fqdn_to_qname("test.example.com.", 18, qname, 128);
+ ck_assert_int_gt(qname_len, 0);
+
+ database_init( &db );
+ ck_assert_ptr_nonnull( db.zone );
+
+ ret = zonefile_to_database( &db, "tests/zone.file" );
+ ck_assert_int_eq(ret,0);
+
+ ret = database_query( &data, &db, qname, qname_len, 1, 1 );
+ ck_assert_int_eq(ret, 0);
+
+ database_destroy(&db);
+ ck_assert_ptr_null( db.zone );
+} END_TEST
+
+
+TCase* test_database(void) {
+ TCase *tc = tcase_create("Database");
+
+ tcase_add_test(tc, test_database_parse_zonefile);
+
+ return tc;
+}