From: Evan Hunt Date: Tue, 9 Sep 2025 20:00:23 +0000 (-0700) Subject: convert config sh-based hooks tests to python X-Git-Tag: v9.21.14~51^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8204843bc4a5d40ec9fe34f2501a0737f872b056;p=thirdparty%2Fbind9.git convert config sh-based hooks tests to python 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. --- diff --git a/bin/tests/system/hooks/tests.sh b/bin/tests/system/hooks/tests.sh deleted file mode 100644 index d54383b3850..00000000000 --- a/bin/tests/system/hooks/tests.sh +++ /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 diff --git a/bin/tests/system/hooks/tests_sh_hooks.py b/bin/tests/system/hooks/tests_hooks.py similarity index 87% rename from bin/tests/system/hooks/tests_sh_hooks.py rename to bin/tests/system/hooks/tests_hooks.py index 93953d1bdf0..6c721c31dd8 100644 --- a/bin/tests/system/hooks/tests_sh_hooks.py +++ b/bin/tests/system/hooks/tests_hooks.py @@ -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])