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 30731c46a6..c3302760ae 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 b2227c16b2..b6e778f629 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 0000000000..6edaa497f6 --- /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' + )