]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add system tests for IXFR statistics
authorMichał Kępień <michal@isc.org>
Thu, 31 Jan 2019 14:43:58 +0000 (15:43 +0100)
committerEvan Hunt <each@isc.org>
Thu, 31 Jan 2019 21:55:01 +0000 (16:55 -0500)
Ensure IXFR statistics are calculated correctly by dig and named, both
for incoming and outgoing transfers.  Disable EDNS when using dig to
request an IXFR so that the same reference file can be used for testing
statistics calculated by both dig and named (dig uses EDNS by default
when sending transfer requests, which affects the number of bytes
transferred).

bin/tests/system/ixfr/clean.sh
bin/tests/system/ixfr/ixfr-stats.good [new file with mode: 0644]
bin/tests/system/ixfr/tests.sh
util/copyrights

index d75c36e4eb8a666ca5d4b2ee0a522993ef0f77d9..fe05b404deaba5bbec10e4ba5ebe4a9d277f329b 100644 (file)
@@ -9,6 +9,7 @@
 # See the COPYRIGHT file distributed with this work for additional
 # information regarding copyright ownership.
 
+rm -f stats.*
 rm -f ns1/myftp.db
 rm -f ns3/*.jnl ns3/mytest.db ns3/subtest.db
 rm -f ns4/*.jnl ns4/*.db
@@ -19,4 +20,4 @@ rm -f */ans.run
 rm -f dig.out dig.out1 dig.out2 dig.out3
 rm -f ns3/large.db
 rm -f ns*/named.lock
-rm -f ns*/managed-keys.bind*
+rm -f ns*/managed-keys.bind* ns*/*.mkeys
diff --git a/bin/tests/system/ixfr/ixfr-stats.good b/bin/tests/system/ixfr/ixfr-stats.good
new file mode 100644 (file)
index 0000000..dd62e12
--- /dev/null
@@ -0,0 +1,3 @@
+messages=1
+records=6
+bytes=219
index d023eef3024ab7dfc043a9f7b594212c864a42dc..64d11a8529fc1b413e14cb3e01a6ba2ab62e7aab 100644 (file)
@@ -307,5 +307,30 @@ if [ ${ret} != 0 ]; then
        status=1;
 fi
 
+echo_i "checking whether dig calculates IXFR statistics correctly"
+ret=0
+$DIG $DIGOPTS +noedns +stat -b 10.53.0.4 @10.53.0.4 test. ixfr=2 > dig.out1
+get_dig_xfer_stats dig.out1 > stats.dig
+diff ixfr-stats.good stats.dig || ret=1
+if [ $ret != 0 ]; then echo_i "failed"; fi
+status=`expr $status + $ret`
+
+# Note: in the next two tests, we use ns4 logs for checking both incoming and
+# outgoing transfer statistics as ns4 is both a secondary server (for ns3) and a
+# primary server (for dig queries from the previous test) for "test".
+echo_i "checking whether named calculates incoming IXFR statistics correctly"
+ret=0
+get_named_xfer_stats ns4/named.run 10.53.0.3 test "Transfer completed" > stats.incoming
+diff ixfr-stats.good stats.incoming || ret=1
+if [ $ret != 0 ]; then echo_i "failed"; fi
+status=`expr $status + $ret`
+
+echo_i "checking whether named calculates outgoing IXFR statistics correctly"
+ret=0
+get_named_xfer_stats ns4/named.run 10.53.0.4 test "IXFR ended" > stats.outgoing
+diff ixfr-stats.good stats.outgoing || ret=1
+if [ $ret != 0 ]; then echo_i "failed"; fi
+status=`expr $status + $ret`
+
 echo_i "exit status: $status"
 [ $status -eq 0 ] || exit 1
index 1881953c182f60bba4c53ddc78d329f973b130a3..a9ac4f82a45d3edbb3a3e2d37fb4cccd5253665d 100644 (file)
 ./bin/tests/system/integrity/tests.sh          SH      2017,2018,2019
 ./bin/tests/system/ixfr/ans2/startme           X       2011,2018,2019
 ./bin/tests/system/ixfr/clean.sh               SH      2001,2004,2007,2011,2012,2014,2015,2016,2018,2019
+./bin/tests/system/ixfr/ixfr-stats.good                X       2019
 ./bin/tests/system/ixfr/ns1/startme            X       2012,2013,2018,2019
 ./bin/tests/system/ixfr/prereq.sh              SH      2001,2004,2007,2012,2014,2016,2018,2019
 ./bin/tests/system/ixfr/setup.sh               SH      2001,2004,2007,2011,2012,2013,2014,2016,2018,2019