]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add shell system test driver
authorOndřej Surý <ondrej@sury.org>
Thu, 7 Mar 2019 13:24:14 +0000 (14:24 +0100)
committerOndřej Surý <ondrej@sury.org>
Tue, 19 Mar 2019 14:09:59 +0000 (15:09 +0100)
bin/tests/system/system-test-driver.sh [new file with mode: 0755]
util/copyrights

diff --git a/bin/tests/system/system-test-driver.sh b/bin/tests/system/system-test-driver.sh
new file mode 100755 (executable)
index 0000000..38710a3
--- /dev/null
@@ -0,0 +1,67 @@
+#!/bin/sh
+# shellcheck disable=SC2181
+# shellcheck disable=SC2034
+
+usage() {
+    echo "$0 --test-name=NAME --log-file=PATH.log --trs-file=PATH.trs --color-tests={yes|no} --expect-failure={yes|no} --enable-hard-errors={yes|no}"
+}
+
+#
+# This requires GNU getopt
+#
+getopt --test >/dev/null
+if [ "$?" -ne 4 ]; then
+    echo "fatal: GNU getopt is required"
+    exit 1
+fi
+
+OPTS=$(getopt --shell sh --name "$(basename "$0")" --options '' --longoptions test-name:,log-file:,trs-file:,color-tests:,expect-failure:,enable-hard-errors: -- "$@")
+
+if [ "$?" != 0 ] ; then echo "Failed parsing options." >&2 ; exit 1 ; fi
+
+eval set -- "$OPTS"
+
+TEST_NAME=
+LOG_FILE=
+TRS_FILE=
+COLOR_TESTS=yes
+EXPECT_FAILURE=no
+HARD_ERRORS=yes
+
+while true; do
+    case "$1" in
+       --test-name ) TEST_NAME="$2"; shift; shift ;;
+       --log-file ) LOG_FILE="$2"; shift; shift ;;
+       --trs-file ) TRS_FILE="$2"; shift; shift ;;
+       --color-tests ) COLOR_TESTS="$2"; shift; shift ;;
+       --expect-failure ) EXPECT_FAILURE="$2"; shift; shift ;;
+       --hard-errors ) HARD_ERRORS="$2"; shift; shift ;;
+       -- ) shift; break ;;
+       *) break ;;
+    esac
+done
+
+if [ -z "$1" ]; then
+    echo "fatal: test name required"
+    usage
+    exit 1
+fi
+
+TEST_PROGRAM="$1"
+shift
+
+if [ -z "$TEST_NAME" ]; then
+    TEST_NAME="$(basename "$TEST_PROGRAM")"
+fi
+if [ -z "$LOG_FILE" ]; then
+    LOG_FILE="$TEST_PROGRAM.log"
+fi
+if [ -z "$TRS_FILE" ]; then
+    TRS_FILE="$TEST_PROGRAM.trs"
+fi
+
+echo "Running $TEST_PROGRAM"
+
+./run.sh -p "$(($RANDOM%32000+32000))" "$@" "$TEST_PROGRAM"
+
+exit $?
index bdf6d6286f43e057000f9de2c680bcc3dbc1514a..1e6b5f965750709bb1f3c7e8244b04e600f36ae1 100644 (file)
 ./bin/tests/system/synthfromdnssec/ns1/sign.sh SH      2017,2018,2019
 ./bin/tests/system/synthfromdnssec/setup.sh    SH      2017,2018,2019
 ./bin/tests/system/synthfromdnssec/tests.sh    SH      2017,2018,2019
+./bin/tests/system/system-test-driver.sh       X       2019
 ./bin/tests/system/tcp/clean.sh                        SH      2014,2016,2018,2019
 ./bin/tests/system/tcp/setup.sh                        SH      2018,2019
 ./bin/tests/system/tcp/tests.sh                        SH      2014,2016,2018,2019