summaryrefslogtreecommitdiffstats
path: root/bin/tests/system/tools
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 15:59:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 15:59:48 +0000
commit3b9b6d0b8e7f798023c9d109c490449d528fde80 (patch)
tree2e1c188dd7b8d7475cd163de9ae02c428343669b /bin/tests/system/tools
parentInitial commit. (diff)
downloadbind9-3b9b6d0b8e7f798023c9d109c490449d528fde80.tar.xz
bind9-3b9b6d0b8e7f798023c9d109c490449d528fde80.zip
Adding upstream version 1:9.18.19.upstream/1%9.18.19upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'bin/tests/system/tools')
-rw-r--r--bin/tests/system/tools/clean.sh17
-rw-r--r--bin/tests/system/tools/setup.sh17
-rw-r--r--bin/tests/system/tools/tests.sh107
-rw-r--r--bin/tests/system/tools/tests_sh_tools.py14
4 files changed, 155 insertions, 0 deletions
diff --git a/bin/tests/system/tools/clean.sh b/bin/tests/system/tools/clean.sh
new file mode 100644
index 0000000..32a8e97
--- /dev/null
+++ b/bin/tests/system/tools/clean.sh
@@ -0,0 +1,17 @@
+#!/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.
+
+rm -f NSEC3
+rm -f nsec3hash
+rm -f nsec3param
+rm -f testcases
diff --git a/bin/tests/system/tools/setup.sh b/bin/tests/system/tools/setup.sh
new file mode 100644
index 0000000..b8ae3b4
--- /dev/null
+++ b/bin/tests/system/tools/setup.sh
@@ -0,0 +1,17 @@
+#!/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.
+
+# shellcheck source=conf.sh
+. ../conf.sh
+
+$SHELL clean.sh
diff --git a/bin/tests/system/tools/tests.sh b/bin/tests/system/tools/tests.sh
new file mode 100644
index 0000000..a7113cb
--- /dev/null
+++ b/bin/tests/system/tools/tests.sh
@@ -0,0 +1,107 @@
+#!/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
+
+checkout() {
+ rc=$1
+ case $rc in
+ 0) : ok ;;
+ *) echo_i "failed"
+ status=$((status + 1))
+ return 1 ;;
+ esac
+ case $out in
+ *$hash*) : ok ;;
+ *) echo_i "expect $hash"
+ echo_i "output $out"
+ echo_i "failed"
+ status=$((status + 1)) ;;
+ esac
+}
+
+# test cases taken from RFC 5155 appendix A
+algo=1 flags=0 iters=12 salt="aabbccdd"
+while read name hash
+do
+ echo_i "checking $NSEC3HASH $name"
+ { out=$($NSEC3HASH $salt $algo $iters $name); rc=$?; } || true
+ checkout $rc
+
+ echo_i "checking $NSEC3HASH -r $name"
+ { out=$($NSEC3HASH -r $algo $flags $iters $salt $name); rc=$?; } || true
+ checkout $rc
+
+done <<EOF
+*.w.example R53BQ7CC2UVMUBFU5OCMM6PERS9TK9EN
+2t7b4g4vsa5smi47k61mv5bv1a22bojr.example KOHAR7MBB8DC2CE8A9QVL8HON4K53UHI
+a.example 35MTHGPGCU1QG68FAB165KLNSNK3DPVL
+ai.example GJEQE526PLBF1G8MKLP59ENFD789NJGI
+example 0P9MHAVEQVM6T7VBL5LOP2U3T2RP3TOM
+ns1.example 2T7B4G4VSA5SMI47K61MV5BV1A22BOJR
+ns2.example Q04JKCEVQVMU85R014C7DKBA38O0JI5R
+w.example K8UDEMVP1J2F7EG6JEBPS17VP3N8I58H
+x.w.example B4UM86EGHHDS6NEA196SMVMLO4ORS995
+x.y.w.example 2VPTU5TIMAMQTTGL4LUU9KG21E0AOR3S
+xx.example T644EBQK9BIBCNA874GIVR6JOJ62MLHV
+y.w.example JI6NEOAEPV8B5O6K4EV33ABHA8HT9FGC
+EOF
+
+# test empty salt
+checkempty() {
+ rc=$1
+ hash=CK0POJMG874LJREF7EFN8430QVIT8BSM checkout $rc &&
+ hash=- checkout $rc
+}
+name=com algo=1 flags=1 iters=0
+echo_i "checking $NSEC3HASH '' $name"
+{ out=$($NSEC3HASH '' $algo $iters $name); rc=$?; } || true
+checkempty $rc
+echo_i "checking $NSEC3HASH - $name"
+{ out=$($NSEC3HASH - $algo $iters $name); rc=$?; } || true
+checkempty $rc
+echo_i "checking $NSEC3HASH -- '' $name"
+{ out=$($NSEC3HASH -- '' $algo $iters $name); rc=$?; } || true
+checkempty $rc
+echo_i "checking $NSEC3HASH -- - $name"
+{ out=$($NSEC3HASH -- - $algo $iters $name); rc=$?; } || true
+checkempty $rc
+echo_i "checking $NSEC3HASH -r '' $name"
+{ out=$($NSEC3HASH -r $algo $flags $iters '' $name); rc=$?; } || true
+checkempty $rc
+echo_i "checking $NSEC3HASH -r - $name"
+{ out=$($NSEC3HASH -r $algo $flags $iters - $name); rc=$?; } || true
+checkempty $rc
+
+checkfail() {
+ rc=$1
+ case $rc in
+ 0) echo_i "failed to fail"
+ status=$((status + 1))
+ return 1 ;;
+ esac
+}
+echo_i "checking $NSEC3HASH missing args"
+{ out=$($NSEC3HASH 00 1 0 2>&1); rc=$?; } || true
+checkfail $rc
+echo_i "checking $NSEC3HASH extra args"
+{ out=$($NSEC3HASH 00 1 0 two names 2>&1); rc=$?; } || true
+checkfail $rc
+echo_i "checking $NSEC3HASH bad option"
+{ out=$($NSEC3HASH -? 2>&1); rc=$?; } || true
+checkfail $rc
+
+echo_i "exit status: $status"
+[ $status -eq 0 ] || exit 1
diff --git a/bin/tests/system/tools/tests_sh_tools.py b/bin/tests/system/tools/tests_sh_tools.py
new file mode 100644
index 0000000..319a0fe
--- /dev/null
+++ b/bin/tests/system/tools/tests_sh_tools.py
@@ -0,0 +1,14 @@
+# 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_tools(run_tests_sh):
+ run_tests_sh()