From: Colin Vidal Date: Thu, 23 Oct 2025 08:54:32 +0000 (+0200) Subject: test rndc showzone works for named.conf zones X-Git-Tag: v9.21.15~43^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6f4d4ddb1c9d00cdb0dd4f41f49b9db6be1b985c;p=thirdparty%2Fbind9.git test rndc showzone works for named.conf zones Since the zone now has a reference to their respective configuration tree, `rndc showzone` can be used for any zones (including those defined in namedconf), without `allow-new-zones` being enabled. Add a test for this. The test is part of the addzone suite because showzone used to be related to addzone, but this could be moved elsewhere in the future if more specific tests are needed for showzone. --- diff --git a/bin/tests/system/addzone/ns1/named.conf.in b/bin/tests/system/addzone/ns1/named.conf.j2 similarity index 88% rename from bin/tests/system/addzone/ns1/named.conf.in rename to bin/tests/system/addzone/ns1/named.conf.j2 index 30731c46a62..c3302760ae7 100644 --- a/bin/tests/system/addzone/ns1/named.conf.in +++ b/bin/tests/system/addzone/ns1/named.conf.j2 @@ -10,6 +10,7 @@ * See the COPYRIGHT file distributed with this work for additional * information regarding copyright ownership. */ +{% set allownewzones = allownewzones | default(True) %} key rndc_key { secret "1234abcd8765"; @@ -27,7 +28,11 @@ options { listen-on-v6 { none; }; allow-transfer { any; }; allow-query { any; }; +{% if allownewzones %} allow-new-zones yes; +{% else %} + allow-new-zones no; +{% endif %} recursion no; dnssec-validation no; }; diff --git a/bin/tests/system/addzone/setup.sh b/bin/tests/system/addzone/setup.sh index b2227c16b20..b6e778f629d 100644 --- a/bin/tests/system/addzone/setup.sh +++ b/bin/tests/system/addzone/setup.sh @@ -17,7 +17,6 @@ cp -f ns1/redirect.db.1 ns1/redirect.db cp -f ns2/redirect.db.1 ns2/redirect.db cp -f ns3/redirect.db.1 ns3/redirect.db -copy_setports ns1/named.conf.in ns1/named.conf copy_setports ns2/named1.conf.in ns2/named.conf copy_setports ns3/named1.conf.in ns3/named.conf diff --git a/bin/tests/system/addzone/tests_showzone_static.py b/bin/tests/system/addzone/tests_showzone_static.py new file mode 100644 index 00000000000..6edaa497f6c --- /dev/null +++ b/bin/tests/system/addzone/tests_showzone_static.py @@ -0,0 +1,31 @@ +# Copyright (C) Internet Systems Consortium, Inc. ("ISC") +# +# SPDX-License-Identifier: MPL-2.0 +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, you can obtain one at https://mozilla.org/MPL/2.0/. +# +# See the COPYRIGHT file distributed with this work for additional +# information regarding copyright ownership. + +import pytest + + +# Test that `rndc showzone` can print any zone, including those statically +# defined in named.conf, and not only those added dynamically. +@pytest.mark.parametrize( + "allow", + [ + pytest.param(True, id="allow-new-zones-yes"), + pytest.param(False, id="allow-new-zones-no"), + ], +) +def test_showzone_static(ns1, templates, allow): + templates.render("ns1/named.conf", {"allownewzones": allow}) + ns1.rndc("reload", log=False) + zoneconfig = ns1.rndc("showzone inlinesec.example", log=False) + assert ( + zoneconfig + == 'zone "inlinesec.example" { type primary; file "inlinesec.db"; };\n' + )