]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Check that nameservers are parsed correctly
authorMark Andrews <marka@isc.org>
Tue, 10 Dec 2024 06:35:16 +0000 (17:35 +1100)
committerMark Andrews <marka@isc.org>
Thu, 12 Dec 2024 22:16:36 +0000 (22:16 +0000)
Add checks that the expected nameservers where actuall addes when
parsing resolv.conf.

tests/irs/resconf_test.c

index 35d966d2410e9243a9f77c56ecc245e79cf3a5e5..f9d22d9d34761916828c43cb19e613b15ae0f2fd 100644 (file)
 
 #include <tests/isc.h>
 
+static isc_result_t
+check_nameserver(irs_resconf_t *resconf, const char *expected) {
+       char buf[ISC_SOCKADDR_FORMATSIZE];
+       isc_sockaddrlist_t *servers = irs_resconf_getnameservers(resconf);
+       isc_sockaddr_t *entry = ISC_LIST_HEAD(*servers);
+       assert_true(entry != NULL);
+       isc_sockaddr_format(entry, buf, sizeof(buf));
+       assert_string_equal(buf, expected);
+       return ISC_R_SUCCESS;
+}
+
+static isc_result_t
+check_ns4(irs_resconf_t *resconf) {
+       return check_nameserver(resconf, "10.0.0.1#53");
+}
+
+static isc_result_t
+check_ns6(irs_resconf_t *resconf) {
+       return check_nameserver(resconf, "2001:db8::1#53");
+}
+
+static isc_result_t
+check_scoped(irs_resconf_t *resconf) {
+       return check_nameserver(resconf, "fe80::1%1#53");
+}
+
 static isc_result_t
 check_number(unsigned int n, unsigned int expected) {
        return (n == expected) ? ISC_R_SUCCESS : ISC_R_BADNUMBER;
@@ -98,12 +124,12 @@ ISC_RUN_TEST_IMPL(irs_resconf_load) {
                isc_result_t checkres;
        } tests[] = {
                { "testdata/domain.conf", ISC_R_SUCCESS, NULL, ISC_R_SUCCESS },
-               { "testdata/nameserver-v4.conf", ISC_R_SUCCESS, NULL,
-                 ISC_R_SUCCESS },
-               { "testdata/nameserver-v6.conf", ISC_R_SUCCESS, NULL,
+               { "testdata/nameserver-v4.conf", ISC_R_SUCCESS, check_ns4,
                  ISC_R_SUCCESS },
-               { "testdata/nameserver-v6-scoped.conf", ISC_R_SUCCESS, NULL,
+               { "testdata/nameserver-v6.conf", ISC_R_SUCCESS, check_ns6,
                  ISC_R_SUCCESS },
+               { "testdata/nameserver-v6-scoped.conf", ISC_R_SUCCESS,
+                 check_scoped, ISC_R_SUCCESS },
                { "testdata/options-attempts.conf", ISC_R_SUCCESS,
                  check_attempts, ISC_R_SUCCESS },
                { "testdata/options-debug.conf", ISC_R_SUCCESS, NULL,