]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Rewrite include-multiplecfg system test to pytest
authorMichal Nowak <mnowak@isc.org>
Thu, 29 Feb 2024 17:25:38 +0000 (18:25 +0100)
committerMichal Nowak <mnowak@isc.org>
Tue, 14 May 2024 09:45:55 +0000 (11:45 +0200)
bin/tests/system/include-multiplecfg/clean.sh
bin/tests/system/include-multiplecfg/ns2/named.conf.in
bin/tests/system/include-multiplecfg/tests.sh [deleted file]
bin/tests/system/include-multiplecfg/tests_include_multiplecfg.py [new file with mode: 0644]
bin/tests/system/include-multiplecfg/tests_sh_include_multiplecfg.py [deleted file]

index d748fc7af8594a2085719920e811226c6aef562a..6e1dbca888cb07b3c8044cb65b7dd14eed951c77 100644 (file)
@@ -15,7 +15,6 @@
 # Clean up after allow query tests.
 #
 
-rm -f dig.out.*
 rm -f ns*/named.conf
 rm -f */named.memstats
 rm -f ns*/named.run ns*/named.run.prev
index b38c228013ef97df70a9d923e45d2885f5542c1c..0dfe01d9a87f621968eb2d393ee41b8f796e699e 100644 (file)
@@ -17,7 +17,7 @@ options {
        listen-on { 10.53.0.2; };
        listen-on-v6 { none; };
        recursion no;
-        notify no;
+       notify no;
        dnssec-validation no;
 };
 
diff --git a/bin/tests/system/include-multiplecfg/tests.sh b/bin/tests/system/include-multiplecfg/tests.sh
deleted file mode 100644 (file)
index 8422417..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/sh
-
-# 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.
-
-# Test of include statement with glob expression.
-
-set -e
-
-. ../conf.sh
-
-DIGOPTS="+tcp +nosea +nostat +nocmd +norec +noques +noadd +nostats -p ${PORT}"
-
-status=0
-n=0
-
-# Test 1 - check if zone1 was loaded.
-n=$((n + 1))
-echo_i "checking glob include of zone1 config ($n)"
-ret=0
-$DIG $DIGOPTS @10.53.0.2 -b 10.53.0.2 zone1.com. a >dig.out.ns2.$n || ret=1
-grep 'status: NOERROR' dig.out.ns2.$n >/dev/null || ret=1
-grep '^zone1.com.' dig.out.ns2.$n >/dev/null || ret=1
-if [ $ret != 0 ]; then echo_i "failed"; fi
-status=$((status + ret))
-
-# Test 2 - check if zone2 was loaded.
-n=$((n + 1))
-echo_i "checking glob include of zone2 config ($n)"
-ret=0
-$DIG $DIGOPTS @10.53.0.2 -b 10.53.0.2 zone2.com. a >dig.out.ns2.$n || ret=1
-grep 'status: NOERROR' dig.out.ns2.$n >/dev/null || ret=1
-grep '^zone2.com.' dig.out.ns2.$n >/dev/null || ret=1
-if [ $ret != 0 ]; then echo_i "failed"; fi
-status=$((status + ret))
-
-# Test 3 - check if standard file path (no magic chars) works.
-n=$((n + 1))
-echo_i "checking include of standard file path config ($n)"
-ret=0
-$DIG $DIGOPTS @10.53.0.2 -b 10.53.0.2 mars.com. a >dig.out.ns2.$n || ret=1
-grep 'status: NOERROR' dig.out.ns2.$n >/dev/null || ret=1
-grep '^mars.com.' dig.out.ns2.$n >/dev/null || ret=1
-if [ $ret != 0 ]; then echo_i "failed"; fi
-status=$((status + ret))
-
-# Test 4: named-checkconf correctly parses glob includes.
-n=$((n + 1))
-echo_i "checking named-checkconf with glob include ($n)"
-ret=0
-(
-  cd ns2
-  $CHECKCONF named.conf
-) || ret=1
-if [ $ret != 0 ]; then echo_i "failed"; fi
-status=$((status + ret))
-
-echo_i "exit status: $status"
-[ $status -eq 0 ] || exit 1
diff --git a/bin/tests/system/include-multiplecfg/tests_include_multiplecfg.py b/bin/tests/system/include-multiplecfg/tests_include_multiplecfg.py
new file mode 100644 (file)
index 0000000..346f334
--- /dev/null
@@ -0,0 +1,39 @@
+# 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 os
+
+import isctest
+import pytest
+
+import dns.message
+
+
+@pytest.mark.parametrize(
+    "qname",
+    [
+        "zone1.com.",  # glob include of zone1 config
+        "zone2.com.",  # glob include of zone2 config
+        "mars.com.",  # checking include of standard file path config
+    ],
+)
+def test_include_multiplecfg(qname):
+    msg = dns.message.make_query(qname, "A")
+    res = isctest.query.tcp(msg, "10.53.0.2")
+
+    isctest.check.noerror(res)
+
+    assert res.answer[0] == dns.rrset.from_text(qname, 86400, "IN", "A", "10.53.0.1")
+
+
+def test_include_multiplecfg_checkconf():
+    """Test that named-checkconf correctly parses glob includes"""
+    isctest.run.cmd([os.environ["CHECKCONF"], "named.conf"], cwd="ns2")
diff --git a/bin/tests/system/include-multiplecfg/tests_sh_include_multiplecfg.py b/bin/tests/system/include-multiplecfg/tests_sh_include_multiplecfg.py
deleted file mode 100644 (file)
index e767c1d..0000000
+++ /dev/null
@@ -1,14 +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.
-
-
-def test_include_multiplecfg(run_tests_sh):
-    run_tests_sh()