]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Rewrite database system test to pytest
authorMichal Nowak <mnowak@isc.org>
Thu, 18 Jul 2024 08:16:16 +0000 (10:16 +0200)
committerMichal Nowak <mnowak@isc.org>
Tue, 26 Nov 2024 12:10:29 +0000 (12:10 +0000)
bin/tests/system/database/ns1/named.conf.j2 [moved from bin/tests/system/database/ns1/named1.conf.in with 91% similarity]
bin/tests/system/database/ns1/named2.conf.in [deleted file]
bin/tests/system/database/setup.sh [deleted file]
bin/tests/system/database/tests.sh [deleted file]
bin/tests/system/database/tests_database.py [new file with mode: 0644]
bin/tests/system/database/tests_sh_database.py [deleted file]

similarity index 91%
rename from bin/tests/system/database/ns1/named1.conf.in
rename to bin/tests/system/database/ns1/named.conf.j2
index 97c087fccd140373fe227a25d32bae456f29b4eb..059a15563dbbd3297c2b0ea31ce5762b22c2f32d 100644 (file)
@@ -39,5 +39,5 @@ trust-anchors { };
 
 zone "database" {
        type primary;
-       database "_builtin empty localhost. hostmaster.isc.org.";
+       database "_builtin empty localhost. @rname | default('hostmaster.isc.org.')@";
 };
diff --git a/bin/tests/system/database/ns1/named2.conf.in b/bin/tests/system/database/ns1/named2.conf.in
deleted file mode 100644 (file)
index 8c498a9..0000000
+++ /dev/null
@@ -1,43 +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.
- */
-
-// NS1
-
-key rndc_key {
-       secret "1234abcd8765";
-       algorithm @DEFAULT_HMAC@;
-};
-
-controls {
-       inet 10.53.0.1 port @CONTROLPORT@ allow { any; } keys { rndc_key; };
-};
-
-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 no;
-       notify yes;
-       dnssec-validation yes;
-};
-
-trust-anchors { };
-
-zone "database" {
-       type primary;
-       database "_builtin empty localhost. marka.isc.org.";
-};
diff --git a/bin/tests/system/database/setup.sh b/bin/tests/system/database/setup.sh
deleted file mode 100644 (file)
index f3f0088..0000000
+++ /dev/null
@@ -1,16 +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.
-
-. ../conf.sh
-
-copy_setports ns1/named1.conf.in ns1/named.conf
diff --git a/bin/tests/system/database/tests.sh b/bin/tests/system/database/tests.sh
deleted file mode 100644 (file)
index efd352c..0000000
+++ /dev/null
@@ -1,55 +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.
-
-set -e
-
-. ../conf.sh
-
-status=0
-n=0
-
-rm -f dig.out.*
-
-DIGOPTS="+tcp +noadd +nosea +nostat +nocmd +dnssec -p ${PORT}"
-RNDCCMD="$RNDC -s 10.53.0.1 -p ${CONTROLPORT} -c ../_common/rndc.conf"
-
-# Check the example. domain
-
-echo_i "checking pre reload zone ($n)"
-ret=0
-$DIG $DIGOPTS soa database. @10.53.0.1 >dig.out.ns1.test$n || ret=1
-grep "hostmaster\.isc\.org" dig.out.ns1.test$n >/dev/null || ret=1
-n=$((n + 1))
-if [ $ret != 0 ]; then echo_i "failed"; fi
-status=$((status + ret))
-
-copy_setports ns1/named2.conf.in ns1/named.conf
-$RNDCCMD reload 2>&1 >/dev/null
-
-echo_i "checking post reload zone ($n)"
-ret=1
-try=0
-while test $try -lt 6; do
-  sleep 1
-  ret=0
-  $DIG $DIGOPTS soa database. @10.53.0.1 >dig.out.ns1.test$n || ret=1
-  grep "marka\.isc\.org" dig.out.ns1.test$n >/dev/null || ret=1
-  try=$((try + 1))
-  test $ret -eq 0 && break
-done
-n=$((n + 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/database/tests_database.py b/bin/tests/system/database/tests_database.py
new file mode 100644 (file)
index 0000000..6793e50
--- /dev/null
@@ -0,0 +1,41 @@
+# 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 isctest
+
+import dns.message
+
+
+def test_database(servers, templates):
+    msg = dns.message.make_query("database.", "SOA")
+
+    # checking pre reload zone
+    res = isctest.query.tcp(msg, "10.53.0.1")
+    assert res.answer[0] == dns.rrset.from_text(
+        "database.",
+        86400,
+        "IN",
+        "SOA",
+        "localhost. hostmaster.isc.org. 0 28800 7200 604800 86400",
+    )
+
+    templates.render("ns1/named.conf", {"rname": "marka.isc.org."})
+    servers["ns1"].rndc("reload")
+
+    # checking post reload zone
+    res = isctest.query.tcp(msg, "10.53.0.1")
+    assert res.answer[0] == dns.rrset.from_text(
+        "database.",
+        86400,
+        "IN",
+        "SOA",
+        "localhost. marka.isc.org. 0 28800 7200 604800 86400",
+    )
diff --git a/bin/tests/system/database/tests_sh_database.py b/bin/tests/system/database/tests_sh_database.py
deleted file mode 100644 (file)
index 62b9105..0000000
+++ /dev/null
@@ -1,22 +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.
-
-import pytest
-
-pytestmark = pytest.mark.extra_artifacts(
-    [
-        "dig.out.*",
-    ]
-)
-
-
-def test_database(run_tests_sh):
-    run_tests_sh()