From 2da036f2315fe375ee83fe79893bd52cbf07a8a1 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Mon, 17 Oct 2011 01:33:28 +0000 Subject: [PATCH] The notify system test was using a dynamic zone for reload testing so it was just a plain fluke that it ever succeeded. * use a normal (non-dynamic) zone. * check that reloads of the master zone actually occur. * remove example3 test from tests.sh as it wasn't testing notify. * add a "sleep 1" so that the copied file will have a newer timestamp. * improve system test logging. * using seperate output files for each test so that it is possible to work out what went wrong if the system test fails. --- bin/tests/system/notify/clean.sh | 4 +- bin/tests/system/notify/ns2/named.conf | 3 +- bin/tests/system/notify/tests.sh | 109 +++++++++++++++---------- 3 files changed, 70 insertions(+), 46 deletions(-) diff --git a/bin/tests/system/notify/clean.sh b/bin/tests/system/notify/clean.sh index 6a08babd5f..db509a12cf 100644 --- a/bin/tests/system/notify/clean.sh +++ b/bin/tests/system/notify/clean.sh @@ -15,12 +15,12 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -# $Id: clean.sh,v 1.12 2007/09/26 03:22:44 marka Exp $ +# $Id: clean.sh,v 1.13 2011/10/17 01:33:27 marka Exp $ # # Clean up after zone transfer tests. # -rm -f ns3/example.bk dig.out.ns2 dig.out.ns3 +rm -f ns3/example.bk dig.out.ns2.test* dig.out.ns3.test* rm -f ns2/example.db rm -f */named.memstats diff --git a/bin/tests/system/notify/ns2/named.conf b/bin/tests/system/notify/ns2/named.conf index f57a107f1d..27cf888ba8 100644 --- a/bin/tests/system/notify/ns2/named.conf +++ b/bin/tests/system/notify/ns2/named.conf @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: named.conf,v 1.20 2007/06/19 23:47:04 tbox Exp $ */ +/* $Id: named.conf,v 1.21 2011/10/17 01:33:28 marka Exp $ */ controls { /* empty */ }; @@ -39,5 +39,4 @@ zone "." { zone "example" { type master; file "example.db"; - allow-update { any; }; }; diff --git a/bin/tests/system/notify/tests.sh b/bin/tests/system/notify/tests.sh index 566f7b519f..29e03697d5 100644 --- a/bin/tests/system/notify/tests.sh +++ b/bin/tests/system/notify/tests.sh @@ -15,89 +15,114 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -# $Id: tests.sh,v 1.35 2011/10/14 23:46:34 tbox Exp $ +# $Id: tests.sh,v 1.36 2011/10/17 01:33:27 marka Exp $ SYSTEMTESTTOP=.. . $SYSTEMTESTTOP/conf.sh status=0 +n=0 +# +# Wait up to 10 seconds for the servers to finish starting before testing. +# for i in 1 2 3 4 5 6 7 8 9 10 do ret=0 - $DIG +tcp example @10.53.0.2 soa -p 5300 > dig.out.ns2 || ret=1 - grep "status: NOERROR" dig.out.ns2 > /dev/null || ret=1 - $DIG +tcp example @10.53.0.3 soa -p 5300 > dig.out.ns3 || ret=1 - grep "status: NOERROR" dig.out.ns3 > /dev/null || ret=1 + $DIG +tcp example @10.53.0.2 soa -p 5300 > dig.out.ns2.test$n || ret=1 + grep "status: NOERROR" dig.out.ns2.test$n > /dev/null || ret=1 + grep "flags:.* aa[ ;]" dig.out.ns2.test$n > /dev/null || ret=1 + $DIG +tcp example @10.53.0.3 soa -p 5300 > dig.out.ns3.test$n || ret=1 + grep "status: NOERROR" dig.out.ns3.test$n > /dev/null || ret=1 + grep "flags:.* aa[ ;]" dig.out.ns3.test$n > /dev/null || ret=1 [ $ret = 0 ] && break sleep 1 done +n=`expr $n + 1` +echo "I:checking initial status ($n)" +ret=0 $DIG +tcp +noadd +nosea +nostat +noquest +nocomm +nocmd a.example.\ - @10.53.0.2 a -p 5300 > dig.out.ns2 || status=1 -grep ";" dig.out.ns2 + @10.53.0.2 a -p 5300 > dig.out.ns2.test$n || ret=1 +grep "10.0.0.1" dig.out.ns2.test$n > /dev/null || ret=1 $DIG +tcp +noadd +nosea +nostat +noquest +nocomm +nocmd a.example.\ - @10.53.0.3 a -p 5300 > dig.out.ns3 || status=1 -grep ";" dig.out.ns3 + @10.53.0.3 a -p 5300 > dig.out.ns3.test$n || ret=1 +grep "10.0.0.1" dig.out.ns3.test$n > /dev/null || ret=1 -$PERL ../digcomp.pl dig.out.ns2 dig.out.ns3 || status=1 +$PERL ../digcomp.pl dig.out.ns2.test$n dig.out.ns3.test$n || ret=1 +[ $ret = 0 ] || echo "I:failed" +status=`expr $ret + $status` + +echo "I:reloading with example2 using HUP and waiting 45 seconds" +sleep 1 # make sure filesystem time stamp is newer for reload. rm -f ns2/example.db cp -f ns2/example2.db ns2/example.db kill -HUP `cat ns2/named.pid` sleep 45 +n=`expr $n + 1` +echo "I:checking example2 loaded ($n)" +ret=0 $DIG +tcp +noadd +nosea +nostat +noquest +nocomm +nocmd a.example.\ - @10.53.0.2 a -p 5300 > dig.out.ns2 || status=1 -grep ";" dig.out.ns2 + @10.53.0.2 a -p 5300 > dig.out.ns2.test$n || ret=1 +grep "10.0.0.2" dig.out.ns2.test$n > /dev/null || ret=1 + +[ $ret = 0 ] || echo "I:failed" +status=`expr $ret + $status` + +n=`expr $n + 1` +echo "I:checking example2 contents have been transferred after HUP reload ($n)" +ret=0 +$DIG +tcp +noadd +nosea +nostat +noquest +nocomm +nocmd a.example.\ + @10.53.0.2 a -p 5300 > dig.out.ns2.test$n || ret=1 +grep "10.0.0.2" dig.out.ns2.test$n > /dev/null || ret=1 $DIG +tcp +noadd +nosea +nostat +noquest +nocomm +nocmd a.example.\ - @10.53.0.3 a -p 5300 > dig.out.ns3 || status=1 -grep ";" dig.out.ns3 + @10.53.0.3 a -p 5300 > dig.out.ns3.test$n || ret=1 +grep "10.0.0.2" dig.out.ns3.test$n > /dev/null || ret=1 -$PERL ../digcomp.pl dig.out.ns2 dig.out.ns3 || status=1 +$PERL ../digcomp.pl dig.out.ns2.test$n dig.out.ns3.test$n || ret=1 -### -# Why does not doing the stop not cause problems with the start further on? -### -$PERL $SYSTEMTESTTOP/stop.pl . ns3 - -rm -f ns2/example.db -cp -f ns2/example3.db ns2/example.db -kill -HUP `cat ns2/named.pid` -sleep 45 - -$PERL $SYSTEMTESTTOP/start.pl . ns3 - -$DIG +tcp +noadd +nosea +nostat +noquest +nocomm +nocmd a.example.\ - @10.53.0.2 a -p 5300 > dig.out.ns2 || status=1 -grep ";" dig.out.ns2 - -$DIG +tcp +noadd +nosea +nostat +noquest +nocomm +nocmd a.example.\ - @10.53.0.3 a -p 5300 > dig.out.ns3 || status=1 -grep ";" dig.out.ns3 - -$PERL ../digcomp.pl dig.out.ns2 dig.out.ns3 || status=1 +[ $ret = 0 ] || echo "I:failed" +status=`expr $ret + $status` +echo "I:stopping master and restarting with example4 then waiting 45 seconds" $PERL $SYSTEMTESTTOP/stop.pl . ns2 rm -f ns2/example.db cp -f ns2/example4.db ns2/example.db -$PERL $SYSTEMTESTTOP/start.pl . ns2 +$PERL $SYSTEMTESTTOP/start.pl --noclean --restart . ns2 sleep 45 +n=`expr $n + 1` +echo "I:checking example4 loaded ($n)" +ret=0 $DIG +tcp +noadd +nosea +nostat +noquest +nocomm +nocmd a.example.\ - @10.53.0.2 a -p 5300 > dig.out.ns2 || status=1 -grep ";" dig.out.ns2 + @10.53.0.2 a -p 5300 > dig.out.ns2.test$n || ret=1 +grep "10.0.0.4" dig.out.ns2.test$n > /dev/null || ret=1 + +[ $ret = 0 ] || echo "I:failed" +status=`expr $ret + $status` + +n=`expr $n + 1` +echo "I:checking example4 contents have been transfered after restart ($n)" +ret=0 +$DIG +tcp +noadd +nosea +nostat +noquest +nocomm +nocmd a.example.\ + @10.53.0.2 a -p 5300 > dig.out.ns2.test$n || ret=1 +grep "10.0.0.4" dig.out.ns2.test$n > /dev/null || ret=1 $DIG +tcp +noadd +nosea +nostat +noquest +nocomm +nocmd a.example.\ - @10.53.0.3 a -p 5300 > dig.out.ns3 || status=1 -grep ";" dig.out.ns3 + @10.53.0.3 a -p 5300 > dig.out.ns3.test$n || ret=1 +grep "10.0.0.4" dig.out.ns3.test$n > /dev/null || ret=1 -$PERL ../digcomp.pl dig.out.ns2 dig.out.ns3 || status=1 +$PERL ../digcomp.pl dig.out.ns2.test$n dig.out.ns3.test$n || ret=1 + +[ $ret = 0 ] || echo "I:failed" +status=`expr $ret + $status` echo "I:exit status: $status" exit $status