]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
convert config sh-based hooks tests to python
authorEvan Hunt <each@isc.org>
Tue, 9 Sep 2025 20:00:23 +0000 (13:00 -0700)
committerColin Vidal <colin@isc.org>
Wed, 10 Sep 2025 10:43:05 +0000 (12:43 +0200)
The test cases that call named-checkconf have been moved from
tests.sh into the python tests, which are now renamed back
to tests_hooks.py.

bin/tests/system/hooks/tests.sh [deleted file]
bin/tests/system/hooks/tests_hooks.py [moved from bin/tests/system/hooks/tests_sh_hooks.py with 87% similarity]

diff --git a/bin/tests/system/hooks/tests.sh b/bin/tests/system/hooks/tests.sh
deleted file mode 100644 (file)
index d54383b..0000000
+++ /dev/null
@@ -1,40 +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
-
-for conf in conf/good*.conf; do
-  n=$((n + 1))
-  echo_i "checking that $conf is accepted ($n)"
-  ret=0
-  $CHECKCONF "$conf" || ret=1
-  if [ $ret != 0 ]; then echo_i "failed"; fi
-  status=$((status + ret))
-done
-
-for conf in conf/bad*.conf; do
-  n=$((n + 1))
-  echo_i "checking that $conf is rejected ($n)"
-  ret=0
-  $CHECKCONF "$conf" >/dev/null && ret=1
-  if [ $ret != 0 ]; then echo_i "failed"; fi
-  status=$((status + ret))
-done
-
-echo_i "exit status: $status"
-[ $status -eq 0 ] || exit 1
similarity index 87%
rename from bin/tests/system/hooks/tests_sh_hooks.py
rename to bin/tests/system/hooks/tests_hooks.py
index 93953d1bdf0b63daeb42e2c0df560b98e507031a..6c721c31dd877c8939fa39ea78f13ab6ad389350 100644 (file)
@@ -9,6 +9,10 @@
 # See the COPYRIGHT file distributed with this work for additional
 # information regarding copyright ownership.
 
+import glob
+import os
+import subprocess
+
 import dns
 import pytest
 import isctest
@@ -75,5 +79,9 @@ def test_hooks_zone_rndc_reload(servers):
     ns2.rndc("reload")
 
 
-def test_hooks_config(run_tests_sh):
-    run_tests_sh()
+def test_hooks_checkconf():
+    for filename in glob.glob("conf/good*.conf"):
+        isctest.run.cmd([os.environ["CHECKCONF"], filename])
+    for filename in glob.glob("conf/bad*.conf"):
+        with pytest.raises(subprocess.CalledProcessError):
+            isctest.run.cmd([os.environ["CHECKCONF"], filename])