]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
test rndc showzone works for named.conf zones
authorColin Vidal <colin@isc.org>
Thu, 23 Oct 2025 08:54:32 +0000 (10:54 +0200)
committerEvan Hunt <each@isc.org>
Thu, 23 Oct 2025 20:01:11 +0000 (13:01 -0700)
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.

bin/tests/system/addzone/ns1/named.conf.j2 [moved from bin/tests/system/addzone/ns1/named.conf.in with 88% similarity]
bin/tests/system/addzone/setup.sh
bin/tests/system/addzone/tests_showzone_static.py [new file with mode: 0644]

similarity index 88%
rename from bin/tests/system/addzone/ns1/named.conf.in
rename to bin/tests/system/addzone/ns1/named.conf.j2
index 30731c46a62ced58970c0f17cf2936f539d90736..c3302760ae791cdb4b530b7d6b4f3fc1571dd2a1 100644 (file)
@@ -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;
 };
index b2227c16b207e6f7ade5cca2a407012270d3fe62..b6e778f629da6d82d491fcdcaa7e73b35b4c3359 100644 (file)
@@ -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 (file)
index 0000000..6edaa49
--- /dev/null
@@ -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'
+    )