diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 15:59:48 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 15:59:48 +0000 |
commit | 3b9b6d0b8e7f798023c9d109c490449d528fde80 (patch) | |
tree | 2e1c188dd7b8d7475cd163de9ae02c428343669b /bin/tests/system/runall.sh | |
parent | Initial commit. (diff) | |
download | bind9-0cd617f6bad00b68e380aeb0024ef4dc1985191c.tar.xz bind9-0cd617f6bad00b68e380aeb0024ef4dc1985191c.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 '')
-rwxr-xr-x | bin/tests/system/runall.sh | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/bin/tests/system/runall.sh b/bin/tests/system/runall.sh new file mode 100755 index 0000000..bbd072e --- /dev/null +++ b/bin/tests/system/runall.sh @@ -0,0 +1,99 @@ +#!/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. + +# Run all the system tests. +# +# Usage: +# runall.sh [-c] [-n] [numprocesses] +# +# -c Force colored output. +# +# -n Noclean. Keep all output files produced by all tests. These +# can later be removed by running "cleanall.sh". +# +# numprocess Number of concurrent processes to use when running the tests. +# The default is one, which causes the tests to run sequentially. + +. ./conf.sh + +usage="Usage: ./runall.sh [-c] [-n] [numprocesses]" + +# Preserve values of environment variables which are already set. + +SYSTEMTEST_FORCE_COLOR=${SYSTEMTEST_FORCE_COLOR:-0} +SYSTEMTEST_NO_CLEAN=${SYSTEMTEST_NO_CLEAN:-0} + +# Handle command line switches if present. + +while getopts "cn-" flag; do + case "$flag" in + c) SYSTEMTEST_FORCE_COLOR=1 ;; + n) SYSTEMTEST_NO_CLEAN=1 ;; + -) break;; + *) exit 1;; + esac +done +export NOCLEAN +shift $((OPTIND-1)) + +# Obtain number of processes to use. + +if [ $# -eq 0 ]; then + numproc=1 +elif [ $# -eq 1 ]; then + if [ "$1" -ne "$1" ] 2>&1; then + # Value passed is not numeric + echo "$usage" >&2 + exit 1 + fi + numproc=$1 +else + echo "$usage" >&2 + exit 1 +fi + +# Run the tests. + +export SYSTEMTEST_FORCE_COLOR +export SYSTEMTEST_NO_CLEAN + +status=0 + +if [ "$NOPARALLEL" = "" ]; then + # use "make" to run tests in parallel. + make -j "$numproc" check + status=$? +else + # the NOPARALLEL environment variable indicates that tests must be + # run sequentially. + $PERL testsock.pl || { + cat <<-EOF + I:NOTE: System tests were skipped because they require the + I: test IP addresses 10.53.0.* to be configured as alias + I: addresses on the loopback interface. Please run + I: "bin/tests/system/ifconfig.sh up" as root to configure them. + EOF + exit 1 + } + ( + status=0 + for testdir in $SUBDIRS; do + $SHELL legacy.run.sh -r "$testdir" || status=1 + done + echo "$status" > systests.status + ) 2>&1 | tee "systests.output" + read -r status < systests.status + rm systests.status +fi + +exit "$status" |