mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-22 18:19:42 +00:00
Add a system test for mirror zones
Create the basic files comprising a system test and define a few helper functions which will be useful when testing mirror zones.
This commit is contained in:
parent
facb68b22e
commit
f86f314d7e
@ -62,7 +62,7 @@ PARALLEL = rpzrecurse serve-stale dnssec \
|
||||
fetchlimit filter-aaaa formerr forward \
|
||||
geoip glue idna inline integrity ixfr keepalive \
|
||||
legacy limits logfileconfig \
|
||||
masterfile masterformat metadata mkeys \
|
||||
masterfile masterformat metadata mirror mkeys \
|
||||
names notify nslookup nsupdate nzd2nzf \
|
||||
padding pending pipelined qmin \
|
||||
reclimit redirect resolver rndc rootkeysentinel rpz \
|
||||
|
@ -93,7 +93,7 @@ PARALLELDIRS="acl additional addzone allow-query auth autosign \
|
||||
fetchlimit filter-aaaa formerr forward \
|
||||
geoip glue idna inline integrity ixfr keepalive \
|
||||
legacy limits logfileconfig \
|
||||
masterfile masterformat metadata mkeys \
|
||||
masterfile masterformat metadata mirror mkeys \
|
||||
names notify nslookup nsupdate nzd2nzf \
|
||||
padding pending pipelined qmin \
|
||||
reclimit redirect resolver rndc rootkeysentinel rpz rpzrecurse \
|
||||
|
@ -90,7 +90,7 @@ SEQUENTIALDIRS="acl additional addzone autosign builtin \
|
||||
ednscompliance emptyzones \
|
||||
fetchlimit filter-aaaa formerr forward geoip glue idna inline ixfr \
|
||||
keepalive @KEYMGR@ legacy limits logfileconfig masterfile \
|
||||
masterformat metadata mkeys names notify nslookup nsupdate \
|
||||
masterformat metadata mirror mkeys names notify nslookup nsupdate \
|
||||
nzd2nzf padding pending pipelined @PKCS11_TEST@ qmin \
|
||||
reclimit redirect resolver rndc rpz rrchecker rrl \
|
||||
rrsetorder rsabigexponent runtime sfcache smartsign sortlist \
|
||||
|
12
bin/tests/system/mirror/clean.sh
Normal file
12
bin/tests/system/mirror/clean.sh
Normal file
@ -0,0 +1,12 @@
|
||||
# Copyright (C) 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/.
|
||||
#
|
||||
# See the COPYRIGHT file distributed with this work for additional
|
||||
# information regarding copyright ownership.
|
||||
|
||||
rm -f */*.conf
|
||||
rm -f */named.memstats
|
||||
rm -f */named.run
|
21
bin/tests/system/mirror/ns1/named.conf.in
Normal file
21
bin/tests/system/mirror/ns1/named.conf.in
Normal file
@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright (C) 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/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.1;
|
||||
notify-source 10.53.0.1;
|
||||
transfer-source 10.53.0.1;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.1; };
|
||||
listen-on-v6 { none; };
|
||||
recursion no;
|
||||
};
|
13
bin/tests/system/mirror/ns1/root.db.in
Normal file
13
bin/tests/system/mirror/ns1/root.db.in
Normal file
@ -0,0 +1,13 @@
|
||||
; Copyright (C) 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/.
|
||||
;
|
||||
; See the COPYRIGHT file distributed with this work for additional
|
||||
; information regarding copyright ownership.
|
||||
|
||||
$TTL 3600
|
||||
@ SOA a.root-servers.nil. hostmaster 2000010100 3600 1200 604800 3600
|
||||
@ NS a.root-servers.nil.
|
||||
a.root-servers.nil. A 10.53.0.1
|
21
bin/tests/system/mirror/ns2/named.conf.in
Normal file
21
bin/tests/system/mirror/ns2/named.conf.in
Normal file
@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright (C) 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/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.2;
|
||||
notify-source 10.53.0.2;
|
||||
transfer-source 10.53.0.2;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.2; };
|
||||
listen-on-v6 { none; };
|
||||
recursion no;
|
||||
};
|
26
bin/tests/system/mirror/ns3/named.conf.in
Normal file
26
bin/tests/system/mirror/ns3/named.conf.in
Normal file
@ -0,0 +1,26 @@
|
||||
/*
|
||||
* Copyright (C) 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/.
|
||||
*
|
||||
* See the COPYRIGHT file distributed with this work for additional
|
||||
* information regarding copyright ownership.
|
||||
*/
|
||||
|
||||
options {
|
||||
query-source address 10.53.0.3;
|
||||
notify-source 10.53.0.3;
|
||||
transfer-source 10.53.0.3;
|
||||
port @PORT@;
|
||||
pid-file "named.pid";
|
||||
listen-on { 10.53.0.3; };
|
||||
listen-on-v6 { none; };
|
||||
recursion yes;
|
||||
};
|
||||
|
||||
zone "." {
|
||||
type hint;
|
||||
file "../../common/root.hint";
|
||||
};
|
19
bin/tests/system/mirror/setup.sh
Normal file
19
bin/tests/system/mirror/setup.sh
Normal file
@ -0,0 +1,19 @@
|
||||
#!/bin/sh -e
|
||||
#
|
||||
# Copyright (C) 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/.
|
||||
#
|
||||
# See the COPYRIGHT file distributed with this work for additional
|
||||
# information regarding copyright ownership.
|
||||
|
||||
SYSTEMTESTTOP=..
|
||||
. $SYSTEMTESTTOP/conf.sh
|
||||
|
||||
$SHELL clean.sh
|
||||
|
||||
copy_setports ns1/named.conf.in ns1/named.conf
|
||||
copy_setports ns2/named.conf.in ns2/named.conf
|
||||
copy_setports ns3/named.conf.in ns3/named.conf
|
55
bin/tests/system/mirror/tests.sh
Normal file
55
bin/tests/system/mirror/tests.sh
Normal file
@ -0,0 +1,55 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 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/.
|
||||
#
|
||||
# See the COPYRIGHT file distributed with this work for additional
|
||||
# information regarding copyright ownership.
|
||||
|
||||
SYSTEMTESTTOP=..
|
||||
. $SYSTEMTESTTOP/conf.sh
|
||||
|
||||
RNDCCMD="$RNDC -c $SYSTEMTESTTOP/common/rndc.conf -p ${CONTROLPORT} -s"
|
||||
|
||||
# Wait until the transfer of the given zone to ns3 either completes successfully
|
||||
# or is aborted by a verification failure.
|
||||
wait_for_transfer() {
|
||||
zone=$1
|
||||
for i in 1 2 3 4 5 6 7 8 9 10; do
|
||||
nextpartpeek ns3/named.run | egrep "'$zone/IN'.*Transfer status: (success|verify failure)" > /dev/null && return
|
||||
sleep 1
|
||||
done
|
||||
echo_i "exceeded time limit waiting for proof of '$zone' being transferred to appear in ns3/named.run"
|
||||
ret=1
|
||||
}
|
||||
|
||||
# Wait until loading the given zone on the given server either completes
|
||||
# successfully for the specified serial number or fails.
|
||||
wait_for_load() {
|
||||
zone=$1
|
||||
serial=$2
|
||||
log=$3
|
||||
for i in 1 2 3 4 5 6 7 8 9 10; do
|
||||
nextpartpeek $log | egrep "$zone.*(loaded serial $serial|unable to load)" > /dev/null && return
|
||||
sleep 1
|
||||
done
|
||||
echo_i "exceeded time limit waiting for proof of '$zone' being loaded to appear in $log"
|
||||
ret=1
|
||||
}
|
||||
|
||||
# Trigger a reload of ns2 and wait until loading the given zone completes.
|
||||
reload_zone() {
|
||||
zone=$1
|
||||
serial=$2
|
||||
$RNDCCMD 10.53.0.2 reload > /dev/null 2>&1
|
||||
wait_for_load $zone $serial ns2/named.run
|
||||
}
|
||||
|
||||
status=0
|
||||
n=0
|
||||
|
||||
echo_i "exit status: $status"
|
||||
[ $status -eq 0 ] || exit 1
|
@ -1595,6 +1595,13 @@
|
||||
./bin/tests/system/metadata/prereq.sh SH 2009,2012,2014,2016,2018
|
||||
./bin/tests/system/metadata/setup.sh SH 2009,2011,2012,2014,2016,2017,2018
|
||||
./bin/tests/system/metadata/tests.sh SH 2009,2011,2012,2013,2014,2016,2017,2018
|
||||
./bin/tests/system/mirror/clean.sh SH 2018
|
||||
./bin/tests/system/mirror/ns1/named.conf.in CONF-C 2018
|
||||
./bin/tests/system/mirror/ns1/root.db.in ZONE 2018
|
||||
./bin/tests/system/mirror/ns2/named.conf.in CONF-C 2018
|
||||
./bin/tests/system/mirror/ns3/named.conf.in CONF-C 2018
|
||||
./bin/tests/system/mirror/setup.sh SH 2018
|
||||
./bin/tests/system/mirror/tests.sh SH 2018
|
||||
./bin/tests/system/mkeys/README TXT.BRIEF 2015,2016,2017,2018
|
||||
./bin/tests/system/mkeys/clean.sh SH 2015,2016,2017,2018
|
||||
./bin/tests/system/mkeys/ns1/named1.conf.in CONF-C 2015,2016,2017,2018
|
||||
|
Loading…
x
Reference in New Issue
Block a user