mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-23 02:28:55 +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 \
|
fetchlimit filter-aaaa formerr forward \
|
||||||
geoip glue idna inline integrity ixfr keepalive \
|
geoip glue idna inline integrity ixfr keepalive \
|
||||||
legacy limits logfileconfig \
|
legacy limits logfileconfig \
|
||||||
masterfile masterformat metadata mkeys \
|
masterfile masterformat metadata mirror mkeys \
|
||||||
names notify nslookup nsupdate nzd2nzf \
|
names notify nslookup nsupdate nzd2nzf \
|
||||||
padding pending pipelined qmin \
|
padding pending pipelined qmin \
|
||||||
reclimit redirect resolver rndc rootkeysentinel rpz \
|
reclimit redirect resolver rndc rootkeysentinel rpz \
|
||||||
|
@ -93,7 +93,7 @@ PARALLELDIRS="acl additional addzone allow-query auth autosign \
|
|||||||
fetchlimit filter-aaaa formerr forward \
|
fetchlimit filter-aaaa formerr forward \
|
||||||
geoip glue idna inline integrity ixfr keepalive \
|
geoip glue idna inline integrity ixfr keepalive \
|
||||||
legacy limits logfileconfig \
|
legacy limits logfileconfig \
|
||||||
masterfile masterformat metadata mkeys \
|
masterfile masterformat metadata mirror mkeys \
|
||||||
names notify nslookup nsupdate nzd2nzf \
|
names notify nslookup nsupdate nzd2nzf \
|
||||||
padding pending pipelined qmin \
|
padding pending pipelined qmin \
|
||||||
reclimit redirect resolver rndc rootkeysentinel rpz rpzrecurse \
|
reclimit redirect resolver rndc rootkeysentinel rpz rpzrecurse \
|
||||||
|
@ -90,7 +90,7 @@ SEQUENTIALDIRS="acl additional addzone autosign builtin \
|
|||||||
ednscompliance emptyzones \
|
ednscompliance emptyzones \
|
||||||
fetchlimit filter-aaaa formerr forward geoip glue idna inline ixfr \
|
fetchlimit filter-aaaa formerr forward geoip glue idna inline ixfr \
|
||||||
keepalive @KEYMGR@ legacy limits logfileconfig masterfile \
|
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 \
|
nzd2nzf padding pending pipelined @PKCS11_TEST@ qmin \
|
||||||
reclimit redirect resolver rndc rpz rrchecker rrl \
|
reclimit redirect resolver rndc rpz rrchecker rrl \
|
||||||
rrsetorder rsabigexponent runtime sfcache smartsign sortlist \
|
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/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/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/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/README TXT.BRIEF 2015,2016,2017,2018
|
||||||
./bin/tests/system/mkeys/clean.sh SH 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
|
./bin/tests/system/mkeys/ns1/named1.conf.in CONF-C 2015,2016,2017,2018
|
||||||
|
Loading…
x
Reference in New Issue
Block a user