diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/database.c | 42 | ||||
-rw-r--r-- | tests/zone.file | 4 |
2 files changed, 46 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; +} diff --git a/tests/zone.file b/tests/zone.file new file mode 100644 index 0000000..12ca15b --- /dev/null +++ b/tests/zone.file @@ -0,0 +1,4 @@ +test.example.com. 3600 IN A 69.69.69.69 +test1.example.com. 3600 IN CNAME test.example.com. +ns.example.com. 3600 IN A 69.69.69.70 +example.com. 3600 IN NS ns.example.com. |