diff options
author | Stephen Morris <stephen@isc.org> | 2011-10-06 15:35:48 +0200 |
---|---|---|
committer | Stephen Morris <stephen@isc.org> | 2011-10-06 15:35:48 +0200 |
commit | 1afd287718c25b673beb31903eb80bfc9f268d87 (patch) | |
tree | cbd26020fdbe5193d99e151e9741736e5d7bcaac /tests/system/ixfr | |
parent | [1213] Common IXFR test functions now in separate file (diff) | |
download | kea-1afd287718c25b673beb31903eb80bfc9f268d87.tar.xz kea-1afd287718c25b673beb31903eb80bfc9f268d87.zip |
[1213] Moved some common tests into a separate file
Diffstat (limited to 'tests/system/ixfr')
-rw-r--r-- | tests/system/ixfr/common_tests.sh.in (renamed from tests/system/ixfr/in-1/tests.sh.in) | 58 | ||||
-rw-r--r-- | tests/system/ixfr/in-1/tests.sh | 38 |
2 files changed, 69 insertions, 27 deletions
diff --git a/tests/system/ixfr/in-1/tests.sh.in b/tests/system/ixfr/common_tests.sh.in index a7ed151f98..f9286108e4 100644 --- a/tests/system/ixfr/in-1/tests.sh.in +++ b/tests/system/ixfr/common_tests.sh.in @@ -15,19 +15,35 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -# This script performs the first IXFR-IN test. A BIND 9 nameserver (the -# "server") contains a version of the zone (version N) and two previous -# versions, N-2 and N-4. A BIND 10 nameserver (the "client") is loaded with -# version N-2 of the zone. A NOTIFY is sent to it, and it is expected that -# it will send an IXFR to the server and update itself with the latest version -# of the zone. (The changes are such that the update should be in the form of -# a single UDP packet.) +# \file +# This script is used in a couple of IXFR tests. # -# The code checks that the zones are identical, and checks the BIND 10 log -# file to ensure that the debug message recording the sending of the IXFR -# request and the receipt of the single update is recorded. +# Preconditions:\n +# The BIND 9 nameserver (ns1, 10.53.0.1, acting as the IXFR server) is loaded +# with the N-4 version of the zone. It may hold prior versions as well. +# Notifications are disabled. +# +# The BIND 10 nameserver (nsx2, 10.53.0.2, acting as the IXFR client) is loaded +# with an earlier (unspecified) version of the zone. +# +# Actions:\n +# This script updates the IXFR server with the N-2 and N-0 versions of the zone. +# It then updates the BIND 10 configuration so that it looks for IXFRs from +# the IXFR server and causes the server to send the client a NOTIFY. After +# waiting for the client to update from the server, it compares SOA serials, +# reporting an error if they are different. +# +# Caller Actions:\n +# The caller can pre-load the BIND 10 IXFR client with whatever version of the +# zone it requires. It can also load the BIND 9 IXFR server with zones earlier +# than N-4. +# +# After this test has finished, it is up to the caller to check the logs +# to see if they report the expected behavior. -. ../ixfr_init.sh +# Set up variables etc. +. @abs_top_builddir@/tests/system/conf.sh +. $IXFR_TOP/ixfr_init.sh SERVER_NAME=ns1 SERVER_IP=10.53.0.1 # BIND 9 @@ -37,18 +53,14 @@ CLIENT_IP=10.53.0.2 # BIND 10 status=0 -# The current state of the nameservers is that they should both be running the -# "n - 4" version of the zone. # Store the SOA serial number of the BIND 10 client for later use. - old_client_serial=`$DIG_SOA @$CLIENT_IP | $AWK '{print $3}'` echo "I:SOA serial of IXFR client is $old_client_serial" # Load the BIND 9 system (the IXFR server) with the "n - 2" and "n" version of # the zones. With ixfr-from-differences set to "yes", the nameserver should # generate the differences between them. - echo "I:updating IXFR-server for ixfr-in tests" update_server_zone $SERVER_NAME $SERVER_IP $IXFR_TOP/largezone_n-2.db if [ $? != 0 ]; @@ -58,7 +70,6 @@ fi # Wait a bit - it seems that if two updates are loaded in quick succession, # the second sometimes gets lost. - sleep 5 update_server_zone $SERVER_NAME $SERVER_IP $IXFR_TOP/largezone_n-0.db if [ $? != 0 ]; @@ -66,9 +77,11 @@ then status=1 fi +# TODO: Need to alter configuration of BIND 10 server such that it accepts +# NOTIFYs from and sends IXFR requests to the BIND 9 master. + # Get the IXFR server to notify the slave server of the new zone. Do this by # allowing notifies and then triggering a re-notification of the server. - echo "I:notifying IXFR-client of presence of new zones" cp ns1/named_notify.conf ns1/named.conf @@ -78,9 +91,6 @@ then status=1 fi -# TODO: Need to alter configuration of BIND 10 server such that it accepts -# NOTIFYs from and sens IXFR requests to the BIND 9 master. - do_rndc $SERVER_NAME $SERVER_IP notify example if [ $? != 0 ]; then @@ -88,7 +98,6 @@ then fi # Wait for the client to update itself. - wait_for_update $CLIENT_NAME $CLIENT_IP $old_client_serial if [ $? != 0 ]; then @@ -101,13 +110,8 @@ client_serial=`$DIG_SOA @$CLIENT_IP | $AWK '{print $3}'` server_serial=`$DIG_SOA @$SERVER_IP | $AWK '{print $3}'` if [ "$client_serial" != "$server_serial" ]; then - echo "I: FAIL - client serial not same as server serial after update" + echo "R:FAIL client serial not same as server serial after update" status=1 fi -# TODO: Check the BIND 10 log, looking for the IXFR messages that indicate that -# it has initiated an IXFR and that it received the update within a single -# packet. - -echo "I:exit status: $status" exit $status diff --git a/tests/system/ixfr/in-1/tests.sh b/tests/system/ixfr/in-1/tests.sh new file mode 100644 index 0000000000..23dc9a24ae --- /dev/null +++ b/tests/system/ixfr/in-1/tests.sh @@ -0,0 +1,38 @@ +#!/bin/sh +# +# Copyright (C) 2004, 2005, 2007, 2011 Internet Systems Consortium, Inc. ("ISC") +# Copyright (C) 2000, 2001 Internet Software Consortium. +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +# PERFORMANCE OF THIS SOFTWARE. + +# \file +# This script performs the first IXFR-IN test. A BIND 9 nameserver (the +# "server") contains a version of the zone (version N) and two previous +# versions, N-2 and N-4. A BIND 10 nameserver (the "client") is loaded with +# version N-2 of the zone. A NOTIFY is sent to it, and it is expected that +# it will send an IXFR to the server and update itself with the latest version +# of the zone. (The changes are such that the update should be in the form of +# a single UDP packet.) +# +# The pre-requisites for this test are the same as for the common tests, so +# we can execute that directly. + +. ../common_tests.sh +status=$? + +# TODO: Check the BIND 10 log, looking for the IXFR messages that indicate that +# it has initiated an IXFR and that it received the update within a single +# packet. + +echo "I:exit status: $status" +exit $status |