]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Use jinja2 templates in resolver test
authorNicki Křížek <nicki@isc.org>
Mon, 8 Dec 2025 10:10:47 +0000 (11:10 +0100)
committerNicki Křížek <nicki@isc.org>
Tue, 9 Dec 2025 13:23:17 +0000 (14:23 +0100)
- Move ns1/named.conf.j2 to ns1/named2.conf.j2 and adjust the python
  test to render this template.
- Convert remaining .in files to .j2 and handle the multiple configs.

13 files changed:
bin/tests/system/resolver/ns1/named.conf.in [deleted file]
bin/tests/system/resolver/ns1/named.conf.j2
bin/tests/system/resolver/ns1/named2.conf.j2 [new file with mode: 0644]
bin/tests/system/resolver/ns11/named.conf.j2 [moved from bin/tests/system/resolver/ns11/named.conf.in with 100% similarity]
bin/tests/system/resolver/ns4/named.conf.j2 [moved from bin/tests/system/resolver/ns4/named.conf.in with 100% similarity]
bin/tests/system/resolver/ns5/named.conf.j2 [moved from bin/tests/system/resolver/ns5/named.conf.in with 100% similarity]
bin/tests/system/resolver/ns6/named.conf.j2 [moved from bin/tests/system/resolver/ns6/named.conf.in with 100% similarity]
bin/tests/system/resolver/ns7/named.conf.j2 [moved from bin/tests/system/resolver/ns7/named1.conf.in with 100% similarity]
bin/tests/system/resolver/ns7/named2.conf.j2 [moved from bin/tests/system/resolver/ns7/named2.conf.in with 100% similarity]
bin/tests/system/resolver/ns9/named.conf.j2 [moved from bin/tests/system/resolver/ns9/named.conf.in with 100% similarity]
bin/tests/system/resolver/setup.sh
bin/tests/system/resolver/tests.sh
bin/tests/system/resolver/tests_resolver.py

diff --git a/bin/tests/system/resolver/ns1/named.conf.in b/bin/tests/system/resolver/ns1/named.conf.in
deleted file mode 100644 (file)
index 2bb2ce1..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * 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.
- */
-
-options {
-       query-source address 10.53.0.1;
-       notify-source 10.53.0.1;
-       transfer-source 10.53.0.1;
-       port @PORT@;
-       pid-file "named.pid";
-       listen-on { 10.53.0.1; };
-       listen-on-v6 { none; };
-       recursion yes;
-       dnssec-validation no;
-       deny-answer-addresses { 192.0.2.0/24; 2001:db8:beef::/48; }
-                except-from { "example.org"; };
-       deny-answer-aliases { "example.org"; }
-               except-from { "goodcname.example.net";
-                             "gooddname.example.net"; };
-       allow-query {!10.53.0.8; any; };
-       max-zone-ttl unlimited;
-       resolver-query-timeout 5000; # 5 seconds
-       attach-cache "globalcache";
-       max-recursion-queries 100;
-       request-zoneversion yes;
-};
-
-
-server 10.53.0.3 {
-       tcp-only yes;
-};
-
-server 10.42.23.3/32 {
-     notify-source 10.42.22.1;
-     query-source address 10.42.22.1;
-     transfer-source 10.42.22.1;
-};
-
-server fd92:7065:b8e:ffff::1000 {
-     notify-source-v6 fd92:7065:b8e:ffff::1001;
-     query-source-v6 address fd92:7065:b8e:ffff::1001;
-     transfer-source-v6 fd92:7065:b8e:ffff::1001;
-};
-
-/*
- * Must be first view so that there is a CH cache with name
- * "globalcache" before the recursive "default"/IN view is configured.
- */
-view "class" chaos {
-       zone "chaostest" CHAOS {
-                type primary;
-                file "chaostest.db";
-        };
-};
-
-/*
- * Must be second view so that so that we can check we don't attach to the
- * "globalcache"/CH cache.
- */
-view "default" {
-       zone "." {
-               type hint;
-               file "root.hint";
-       };
-};
-
-view "alternative" {
-       zone "." {
-               type hint;
-               file "root.hint";
-       };
-};
-
-key rndc_key {
-       secret "1234abcd8765";
-       algorithm @DEFAULT_HMAC@;
-};
-
-controls {
-       inet 10.53.0.1 port @CONTROLPORT@ allow { any; } keys { rndc_key; };
-};
index ff3caa8216741713b9eba3bec4ad2afb66bc4be8..2bb2ce1f86b219e78b9f4aa11e7a9ecadea6628e 100644 (file)
@@ -10,7 +10,6 @@
  * See the COPYRIGHT file distributed with this work for additional
  * information regarding copyright ownership.
  */
-{% set wrongoption = wrongoption | default(False) %}
 
 options {
        query-source address 10.53.0.1;
@@ -22,21 +21,63 @@ options {
        listen-on-v6 { none; };
        recursion yes;
        dnssec-validation no;
+       deny-answer-addresses { 192.0.2.0/24; 2001:db8:beef::/48; }
+                except-from { "example.org"; };
+       deny-answer-aliases { "example.org"; }
+               except-from { "goodcname.example.net";
+                             "gooddname.example.net"; };
+       allow-query {!10.53.0.8; any; };
+       max-zone-ttl unlimited;
+       resolver-query-timeout 5000; # 5 seconds
        attach-cache "globalcache";
-        max-zone-ttl unlimited;
-        resolver-query-timeout 5000; # 5 seconds
-        max-recursion-queries 100;
-        request-zoneversion yes;
+       max-recursion-queries 100;
+       request-zoneversion yes;
 };
 
+
+server 10.53.0.3 {
+       tcp-only yes;
+};
+
+server 10.42.23.3/32 {
+     notify-source 10.42.22.1;
+     query-source address 10.42.22.1;
+     transfer-source 10.42.22.1;
+};
+
+server fd92:7065:b8e:ffff::1000 {
+     notify-source-v6 fd92:7065:b8e:ffff::1001;
+     query-source-v6 address fd92:7065:b8e:ffff::1001;
+     transfer-source-v6 fd92:7065:b8e:ffff::1001;
+};
+
+/*
+ * Must be first view so that there is a CH cache with name
+ * "globalcache" before the recursive "default"/IN view is configured.
+ */
+view "class" chaos {
+       zone "chaostest" CHAOS {
+                type primary;
+                file "chaostest.db";
+        };
+};
+
+/*
+ * Must be second view so that so that we can check we don't attach to the
+ * "globalcache"/CH cache.
+ */
 view "default" {
        zone "." {
                type hint;
                file "root.hint";
        };
-{% if wrongoption %}
-       forwarders port 9999999 { 127.0.0.1; };
-{% endif %}
+};
+
+view "alternative" {
+       zone "." {
+               type hint;
+               file "root.hint";
+       };
 };
 
 key rndc_key {
diff --git a/bin/tests/system/resolver/ns1/named2.conf.j2 b/bin/tests/system/resolver/ns1/named2.conf.j2
new file mode 100644 (file)
index 0000000..ff3caa8
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * 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.
+ */
+{% set wrongoption = wrongoption | default(False) %}
+
+options {
+       query-source address 10.53.0.1;
+       notify-source 10.53.0.1;
+       transfer-source 10.53.0.1;
+       port @PORT@;
+       pid-file "named.pid";
+       listen-on { 10.53.0.1; };
+       listen-on-v6 { none; };
+       recursion yes;
+       dnssec-validation no;
+       attach-cache "globalcache";
+        max-zone-ttl unlimited;
+        resolver-query-timeout 5000; # 5 seconds
+        max-recursion-queries 100;
+        request-zoneversion yes;
+};
+
+view "default" {
+       zone "." {
+               type hint;
+               file "root.hint";
+       };
+{% if wrongoption %}
+       forwarders port 9999999 { 127.0.0.1; };
+{% endif %}
+};
+
+key rndc_key {
+       secret "1234abcd8765";
+       algorithm @DEFAULT_HMAC@;
+};
+
+controls {
+       inet 10.53.0.1 port @CONTROLPORT@ allow { any; } keys { rndc_key; };
+};
index ae64e5f93e7e74ed2b7f12ecbf2485bbf79fe8b8..7e4d04843f2df9d32f54140f59e2e90f104348b8 100644 (file)
@@ -18,12 +18,4 @@ cp ns4/tld1.db ns4/tld.db
 cp ns6/to-be-removed.tld.db.in ns6/to-be-removed.tld.db
 cp ns7/server.db.in ns7/server.db
 
-copy_setports ns1/named.conf.in ns1/named.conf
-copy_setports ns4/named.conf.in ns4/named.conf
-copy_setports ns5/named.conf.in ns5/named.conf
-copy_setports ns6/named.conf.in ns6/named.conf
-copy_setports ns7/named1.conf.in ns7/named.conf
-copy_setports ns9/named.conf.in ns9/named.conf
-copy_setports ns11/named.conf.in ns11/named.conf
-
 (cd ns6 && $SHELL keygen.sh)
index 58fe0891b8b0552ff8e4ccb22a7c59c8eedd6cae..dcaf655b26d406f0c35b7de819181266cc60183a 100755 (executable)
@@ -462,7 +462,7 @@ grep "not subdomain of zone" ns1/named.run >/dev/null || ret=1
 if [ $ret != 0 ]; then echo_i "failed"; fi
 status=$((status + ret))
 
-copy_setports ns7/named2.conf.in ns7/named.conf
+cp ns7/named2.conf ns7/named.conf
 rndccmd 10.53.0.7 reconfig 2>&1 | sed 's/^/ns7 /' | cat_i
 
 n=$((n + 1))
index 4e99315bcb69764c04bf2ec567a29b496d3d058d..1465269ebd64a633c7e2d5bf52bbc63272d9adf9 100644 (file)
@@ -21,7 +21,9 @@ def test_resolver_cache_reloadfails(ns1, templates):
     res = isctest.query.udp(msg, "10.53.0.1")
     isctest.check.noerror(res)
     assert res.answer[0].ttl == 300
-    templates.render("ns1/named.conf", {"wrongoption": True})
+    templates.render(
+        "ns1/named.conf", {"wrongoption": True}, template="ns1/named2.conf.j2"
+    )
 
     # The first reload fails, and the old cache list will be preserved
     cmd = ns1.rndc("reload", raise_on_exception=False)