mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-31 06:25:31 +00:00
[rt46602] Change the system tests script to support running individual tests on different ports
Resolved conflict in run.sh.
This commit is contained in:
committed by
Stephen Morris
parent
c6b430745b
commit
fb00f18005
@@ -46,7 +46,10 @@ feature-test@EXEEXT@: feature-test.@O@
|
|||||||
check: test
|
check: test
|
||||||
|
|
||||||
test: subdirs
|
test: subdirs
|
||||||
if test -f ./runall.sh; then sh ./runall.sh; fi
|
if test -f ./runall.sh; then $(SHELL) ./runall.sh; fi
|
||||||
|
|
||||||
|
server-stale:
|
||||||
|
$(SHELL) ./run.sh -p 5310 -c 9954 server-stale
|
||||||
|
|
||||||
testclean clean distclean::
|
testclean clean distclean::
|
||||||
if test -f ./cleanall.sh; then sh ./cleanall.sh; fi
|
if test -f ./cleanall.sh; then sh ./cleanall.sh; fi
|
||||||
@@ -63,3 +66,5 @@ installdirs:
|
|||||||
install::
|
install::
|
||||||
|
|
||||||
uninstall::
|
uninstall::
|
||||||
|
|
||||||
|
.PHONY: server-stale
|
||||||
|
19
bin/tests/system/common/controls.conf.in
Normal file
19
bin/tests/system/common/controls.conf.in
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2000, 2001, 2004, 2007, 2013, 2016 Internet Systems Consortium, Inc. ("ISC")
|
||||||
|
*
|
||||||
|
* 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 http://mozilla.org/MPL/2.0/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* $Id: controls.conf,v 1.6 2007/06/19 23:47:01 tbox Exp $ */
|
||||||
|
|
||||||
|
key rndc_key {
|
||||||
|
secret "1234abcd8765";
|
||||||
|
algorithm hmac-sha256;
|
||||||
|
};
|
||||||
|
|
||||||
|
controls {
|
||||||
|
inet 10.53.0.2 port @CONTROLPORT@ allow { any; } keys { rndc_key; };
|
||||||
|
};
|
||||||
|
|
@@ -83,7 +83,7 @@ SUBDIRS="acl additional addzone allow_query auth autosign builtin
|
|||||||
names notify nslookup nsupdate nzd2nzf padding pending
|
names notify nslookup nsupdate nzd2nzf padding pending
|
||||||
pipelined @PKCS11_TEST@ reclimit redirect resolver rndc
|
pipelined @PKCS11_TEST@ reclimit redirect resolver rndc
|
||||||
rpz rpzrecurse rrchecker rrl rrsetorder rsabigexponent
|
rpz rpzrecurse rrchecker rrl rrsetorder rsabigexponent
|
||||||
runtime serve-stale sfcache smartsign sortlist spf staticstub
|
runtime sfcache smartsign sortlist spf staticstub
|
||||||
statistics statschannel stub synthfromdnssec tcp tkey tools
|
statistics statschannel stub synthfromdnssec tcp tkey tools
|
||||||
tsig tsiggss unknown upforwd verify views wildcard xfer
|
tsig tsiggss unknown upforwd verify views wildcard xfer
|
||||||
xferquota zero zonechecks"
|
xferquota zero zonechecks"
|
||||||
|
20
bin/tests/system/getopts.sh
Normal file
20
bin/tests/system/getopts.sh
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Copyright (C) 2017 Internet Systems Consortium, Inc. ("ISC")
|
||||||
|
#
|
||||||
|
# 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 http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
# shell script snippet, must be sourced
|
||||||
|
|
||||||
|
port=5300
|
||||||
|
controlport=9953
|
||||||
|
|
||||||
|
while getopts "p:c:" flag; do
|
||||||
|
case "$flag" in
|
||||||
|
p) port=$OPTARG ;;
|
||||||
|
c) controlport=$OPTARG ;;
|
||||||
|
*) exit 1 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
shift $(($OPTIND - 1))
|
@@ -15,20 +15,42 @@ SYSTEMTESTTOP=.
|
|||||||
|
|
||||||
stopservers=true
|
stopservers=true
|
||||||
clean=true
|
clean=true
|
||||||
|
port=5300
|
||||||
|
controlport=9953
|
||||||
|
dateargs="-R"
|
||||||
|
|
||||||
case $1 in
|
while getopts "knp:d:c:" flag; do
|
||||||
--keep|-k) stopservers=false; shift ;;
|
case "$flag" in
|
||||||
--noclean|-n) clean=false; shift ;;
|
k) stopservers=false ;;
|
||||||
esac
|
n) clean=false ;;
|
||||||
|
p) port=$OPTARG ;;
|
||||||
|
c) controlport=$OPTARG ;;
|
||||||
|
d) dateargs=$OPTARG ;;
|
||||||
|
*) exit 1 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
test $# -gt 0 || { echo "usage: $0 [--keep|--noclean] test-directory" >&2; exit 1; }
|
if [ "$((${port}+0))" -ne "${port}" ] || [ "${port}" -le 1024 ] || [ "${port}" -gt 65535 ]; then
|
||||||
|
echo "Specified port '$port' must be numeric (1024,65535>" >&2; exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$((${controlport}+0))" -ne "${controlport}" ] || [ "${controlport}" -le 1024 ] || [ "${controlport}" -gt 65535 ]; then
|
||||||
|
echo "Specified control port '$controlport' must be numeric (1024,65535>" >&2; exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "PORT: ${port}"
|
||||||
|
echo "CONTROLPORT: ${controlport}"
|
||||||
|
|
||||||
|
shift $(($OPTIND - 1))
|
||||||
|
|
||||||
|
test $# -gt 0 || { echo "usage: $0 [-k|-n|-p <PORT>] test-directory" >&2; exit 1; }
|
||||||
|
|
||||||
test=$1
|
test=$1
|
||||||
shift
|
shift
|
||||||
|
|
||||||
test -d $test || { echo "$0: $test: no such test" >&2; exit 1; }
|
test -d $test || { echo "$0: $test: no such test" >&2; exit 1; }
|
||||||
|
|
||||||
echoinfo "S:$test:`date`" >&2
|
echoinfo "S:$test:`date $dateargs`" >&2
|
||||||
echoinfo "T:$test:1:A" >&2
|
echoinfo "T:$test:1:A" >&2
|
||||||
echoinfo "A:System test $test" >&2
|
echoinfo "A:System test $test" >&2
|
||||||
|
|
||||||
@@ -36,20 +58,12 @@ if [ x${PERL:+set} = x ]
|
|||||||
then
|
then
|
||||||
echowarn "I:Perl not available. Skipping test." >&2
|
echowarn "I:Perl not available. Skipping test." >&2
|
||||||
echowarn "R:UNTESTED" >&2
|
echowarn "R:UNTESTED" >&2
|
||||||
echoinfo "E:$test:`date`" >&2
|
echoinfo "E:$test:`date $dateargs`" >&2
|
||||||
exit 0;
|
exit 0;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$PERL testsock.pl || {
|
|
||||||
echowarn "I:Network interface aliases not set up. Skipping test." >&2;
|
|
||||||
echowarn "R:UNTESTED" >&2;
|
|
||||||
echoinfo "E:$test:`date`" >&2;
|
|
||||||
exit 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# Check for test-specific prerequisites.
|
# Check for test-specific prerequisites.
|
||||||
test ! -f $test/prereq.sh || ( cd $test && $SHELL prereq.sh "$@" )
|
test ! -f $test/prereq.sh || ( cd $test && $SHELL prereq.sh -c "$controlport" -p "$port" "$@" )
|
||||||
result=$?
|
result=$?
|
||||||
|
|
||||||
if [ $result -eq 0 ]; then
|
if [ $result -eq 0 ]; then
|
||||||
@@ -57,10 +71,18 @@ if [ $result -eq 0 ]; then
|
|||||||
else
|
else
|
||||||
echowarn "I:Prerequisites for $test missing, skipping test." >&2
|
echowarn "I:Prerequisites for $test missing, skipping test." >&2
|
||||||
[ $result -eq 255 ] && echowarn "R:SKIPPED" || echowarn "R:UNTESTED"
|
[ $result -eq 255 ] && echowarn "R:SKIPPED" || echowarn "R:UNTESTED"
|
||||||
echoinfo "E:$test:`date`" >&2
|
echoinfo "E:$test:`date $dateargs`" >&2
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Test sockets after the prerequisites has been setup
|
||||||
|
$PERL testsock.pl -p "${port}" || {
|
||||||
|
echowarn "I:Network interface aliases not set up. Skipping test." >&2;
|
||||||
|
echowarn "R:UNTESTED" >&2;
|
||||||
|
echoinfo "E:$test:`date $dateargs`" >&2;
|
||||||
|
exit 0;
|
||||||
|
}
|
||||||
|
|
||||||
# Check for PKCS#11 support
|
# Check for PKCS#11 support
|
||||||
if
|
if
|
||||||
test ! -f $test/usepkcs11 || $SHELL cleanpkcs11.sh
|
test ! -f $test/usepkcs11 || $SHELL cleanpkcs11.sh
|
||||||
@@ -69,21 +91,21 @@ then
|
|||||||
else
|
else
|
||||||
echowarn "I:Need PKCS#11 for $test, skipping test." >&2
|
echowarn "I:Need PKCS#11 for $test, skipping test." >&2
|
||||||
echowarn "R:PKCS11ONLY" >&2
|
echowarn "R:PKCS11ONLY" >&2
|
||||||
echoinfo "E:$test:`date`" >&2
|
echoinfo "E:$test:`date $dateargs`" >&2
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Set up any dynamically generated test data
|
# Set up any dynamically generated test data
|
||||||
if test -f $test/setup.sh
|
if test -f $test/setup.sh
|
||||||
then
|
then
|
||||||
( cd $test && $SHELL setup.sh "$@" )
|
( cd $test && $SHELL setup.sh -c "$controlport" -p "$port" "$@" )
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Start name servers running
|
# Start name servers running
|
||||||
$PERL start.pl $test || { echofail "R:FAIL"; echoinfo "E:$test:`date`"; exit 1; }
|
$PERL start.pl -p $port $test || { echofail "R:FAIL"; echoinfo "E:$test:`date $dateargs`"; exit 1; }
|
||||||
|
|
||||||
# Run the tests
|
# Run the tests
|
||||||
( cd $test ; $SHELL tests.sh )
|
( cd $test ; $SHELL tests.sh -c "$controlport" -p "$port" "$@" )
|
||||||
|
|
||||||
status=$?
|
status=$?
|
||||||
|
|
||||||
@@ -108,21 +130,21 @@ else
|
|||||||
|
|
||||||
if $clean
|
if $clean
|
||||||
then
|
then
|
||||||
rm -f $SYSTEMTESTTOP/random.data
|
rm -f $SYSTEMTESTTOP/random.data
|
||||||
if test -f $test/clean.sh
|
if test -f $test/clean.sh
|
||||||
then
|
then
|
||||||
( cd $test && $SHELL clean.sh "$@" )
|
( cd $test && $SHELL clean.sh "-p" "$port" "$@" )
|
||||||
fi
|
fi
|
||||||
if test -d ../../../.git
|
if test -d ../../../.git
|
||||||
then
|
then
|
||||||
git status -su --ignored $test |
|
git status -su --ignored $test |
|
||||||
sed -n -e 's|^?? \(.*\)|I:file \1 not removed|p' \
|
sed -n -e 's|^?? \(.*\)|I:file \1 not removed|p' \
|
||||||
-e 's|^!! \(.*/named.run\)$|I:file \1 not removed|p' \
|
-e 's|^!! \(.*/named.run\)$|I:file \1 not removed|p' \
|
||||||
-e 's|^!! \(.*/named.memstats\)$|I:file \1 not removed|p'
|
-e 's|^!! \(.*/named.memstats\)$|I:file \1 not removed|p'
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echoinfo "E:$test:`date`"
|
echoinfo "E:$test:`date $dateargs`"
|
||||||
|
|
||||||
exit $status
|
exit $status
|
||||||
|
@@ -35,7 +35,8 @@ use Getopt::Long;
|
|||||||
my $usage = "usage: $0 [--noclean] [--restart] test-directory [server-directory [server-options]]";
|
my $usage = "usage: $0 [--noclean] [--restart] test-directory [server-directory [server-options]]";
|
||||||
my $noclean = '';
|
my $noclean = '';
|
||||||
my $restart = '';
|
my $restart = '';
|
||||||
GetOptions('noclean' => \$noclean, 'restart' => \$restart);
|
my $defaultport = 5300;
|
||||||
|
GetOptions('noclean' => \$noclean, 'restart' => \$restart, 'p=i' => \$defaultport);
|
||||||
my $test = $ARGV[0];
|
my $test = $ARGV[0];
|
||||||
my $server = $ARGV[1];
|
my $server = $ARGV[1];
|
||||||
my $options = $ARGV[2];
|
my $options = $ARGV[2];
|
||||||
@@ -92,7 +93,7 @@ if ($server) {
|
|||||||
sub check_ports {
|
sub check_ports {
|
||||||
my $server = shift;
|
my $server = shift;
|
||||||
my $options = "";
|
my $options = "";
|
||||||
my $port = 5300;
|
my $port = $defaultport;
|
||||||
my $file = "";
|
my $file = "";
|
||||||
|
|
||||||
$file = $testdir . "/" . $server . "/named.port" if ($server);
|
$file = $testdir . "/" . $server . "/named.port" if ($server);
|
||||||
|
Reference in New Issue
Block a user