]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Rewrite the hooks system test to pytest
authorMichal Nowak <mnowak@isc.org>
Wed, 3 May 2023 18:06:38 +0000 (20:06 +0200)
committerMichal Nowak <mnowak@isc.org>
Thu, 11 May 2023 09:49:33 +0000 (11:49 +0200)
Also, enable the test under TSAN.

bin/tests/system/hooks/tests.sh [deleted file]
bin/tests/system/hooks/tests_async_plugin.py [moved from bin/tests/system/hooks/prereq.sh with 56% similarity]

diff --git a/bin/tests/system/hooks/tests.sh b/bin/tests/system/hooks/tests.sh
deleted file mode 100644 (file)
index 9ba0bd8..0000000
+++ /dev/null
@@ -1,36 +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
-
-status=0
-n=0
-
-rm -f dig.out.*
-
-DIGOPTS="+tcp +noadd +nosea +nostat +nocmd -p ${PORT}"
-RNDCCMD="$RNDC -c ../common/rndc.conf -p ${CONTROLPORT} -s"
-
-n=$((n+1))
-echo_i "checking asynchronous hook action resumes correctly ($n)"
-ret=0
-$DIG $DIGOPTS example.com @10.53.0.1 > dig.out.ns1.test$n || ret=1
-# the test-async plugin changes the status of any postiive answer to NOTIMP
-grep -q "status: NOTIMP" dig.out.ns1.test$n || ret=1
-if [ $ret != 0 ]; then echo_i "failed"; fi
-status=$((status + ret))
-
-
-
-echo_i "exit status: $status"
-[ $status -eq 0 ] || exit 1
similarity index 56%
rename from bin/tests/system/hooks/prereq.sh
rename to bin/tests/system/hooks/tests_async_plugin.py
index 665fdfeaab32edcb3669c2bb385663f0c2185a47..48f9feefbdfc3d60f5d28b7a0651d94f57946cc6 100644 (file)
@@ -1,5 +1,3 @@
-#!/bin/sh
-
 # Copyright (C) Internet Systems Consortium, Inc. ("ISC")
 #
 # SPDX-License-Identifier: MPL-2.0
 # See the COPYRIGHT file distributed with this work for additional
 # information regarding copyright ownership.
 
-. ../conf.sh
+import pytest
+
+pytest.importorskip("dns")
+import dns.message
+import dns.query
+import dns.rcode
 
-$FEATURETEST --tsan && {
-       echo_i "TSAN - skipping hooks test"
-        exit 255
-}
 
-exit 0
+def test_async_hook(named_port):
+    msg = dns.message.make_query(
+        "example.com.",
+        "A",
+    )
+    ans = dns.query.udp(msg, "10.53.0.1", timeout=10, port=named_port)
+    assert ans.rcode() == dns.rcode.NOTIMP