From: Mark Andrews Date: Tue, 10 Dec 2024 06:35:16 +0000 (+1100) Subject: Check that nameservers are parsed correctly X-Git-Tag: v9.21.4~22^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c38eb871587147cdc795a11ec232eb5dbd6b285b;p=thirdparty%2Fbind9.git Check that nameservers are parsed correctly Add checks that the expected nameservers where actuall addes when parsing resolv.conf. --- diff --git a/tests/irs/resconf_test.c b/tests/irs/resconf_test.c index 35d966d2410..f9d22d9d347 100644 --- a/tests/irs/resconf_test.c +++ b/tests/irs/resconf_test.c @@ -31,6 +31,32 @@ #include +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,