]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
fix sfcache test
authorEvan Hunt <each@isc.org>
Thu, 24 Jan 2019 02:32:36 +0000 (18:32 -0800)
committerEvan Hunt <each@isc.org>
Fri, 25 Jan 2019 08:44:11 +0000 (00:44 -0800)
use a lame server configuration to force SERVFAILs instead of killing ns2.
this prevents test failures that occurred due to a different behavior of
the netowrking stack in windows.

bin/tests/system/sfcache/ns1/root.db.in
bin/tests/system/sfcache/tests.sh

index dab5cea7f774ed6afddb2111cee2e61b16b95c30..9ee20905b72a650fad4ce811bdec97a1e61cb57e 100644 (file)
@@ -20,3 +20,5 @@ a.root-servers.nil.   A       10.53.0.1
 
 example.               NS      ns2.example.
 ns2.example.           A       10.53.0.2
+example2.              NS      ns2.example2.
+ns2.example2.          A       10.53.0.2
index 40c9f86347186847ce69e2dc3cf25017f0b2b1b6..19e34a724e40a506014701fe1ed5e11a6cf42ea5 100644 (file)
@@ -59,20 +59,20 @@ n=$((n+1))
 if [ $ret != 0 ]; then echo_i "failed"; fi
 status=$((status+ret))
 
-echo_i "disabling server to force non-dnssec SERVFAIL"
-"$PERL" "$SYSTEMTESTTOP/stop.pl" --use-rndc --port "${CONTROLPORT}" sfcache ns2
-awk '/SERVFAIL/ { next; out=1 } /Zone/ { out=0 } { if (out) print }' ns5/named_dump.db
-echo_i "checking SERVFAIL is cached ($n)"
+echo_i "switching to non-dnssec SERVFAIL tests"
 ret=0
-dig_with_opts bar.example. a @10.53.0.5 > dig.out.ns5.test$n || ret=1
+rndc_with_opts 10.53.0.5 flush 2>&1 | sed 's/^/I:ns5 /'
 rndc_with_opts 10.53.0.5 dumpdb -all 2>&1 | sed 's/^/I:ns5 /'
-# shellcheck disable=SC2034
+awk '/SERVFAIL/ { next; out=1 } /Zone/ { out=0 } { if (out) print }' ns5/named_dump.db
+echo_i "checking SERVFAIL is cached ($n)"
+dig_with_opts bar.example2. a @10.53.0.5 > dig.out.ns5.test$n || ret=1
 for i in 1 2 3 4 5 6 7 8 9 10; do
+    rndc_with_opts 10.53.0.5 dumpdb -all 2>&1 | sed 's/^/I:ns5 /'
+    sleep 1
     awk '/Zone/{out=0} { if (out) print } /SERVFAIL/{out=1}' ns5/named_dump.db > sfcache.$n
     [ -s "sfcache.$n" ] && break
-    sleep 1
 done
-grep "^; bar.example/A" sfcache.$n > /dev/null || ret=1
+grep "^; bar.example2/A" sfcache.$n > /dev/null || ret=1
 n=$((n+1))
 if [ $ret != 0 ]; then echo_i "failed"; fi
 status=$((status+ret))
@@ -80,17 +80,17 @@ status=$((status+ret))
 echo_i "checking SERVFAIL is returned from cache ($n)"
 ret=0
 nextpart ns5/named.run > /dev/null
-dig_with_opts bar.example. a @10.53.0.5 > dig.out.ns5.test$n || ret=1
+dig_with_opts bar.example2. a @10.53.0.5 > dig.out.ns5.test$n || ret=1
 grep "SERVFAIL" dig.out.ns5.test$n > /dev/null || ret=1
 nextpart ns5/named.run > ns5/named.run.part$n
-grep 'servfail cache hit bar.example/A (CD=0)' ns5/named.run.part$n > /dev/null || ret=1
+grep 'servfail cache hit bar.example2/A (CD=0)' ns5/named.run.part$n > /dev/null || ret=1
 n=$((n+1))
 if [ $ret != 0 ]; then echo_i "failed"; fi
 status=$((status+ret))
 
 echo_i "checking cache is bypassed with +cd query ($n)"
 ret=0
-dig_with_opts +cd bar.example. a @10.53.0.5 > dig.out.ns5.test$n || ret=1
+dig_with_opts +cd bar.example2. a @10.53.0.5 > dig.out.ns5.test$n || ret=1
 grep "SERVFAIL" dig.out.ns5.test$n > /dev/null || ret=1
 nextpart ns5/named.run > ns5/named.run.part$n
 grep 'servfail cache hit' ns5/named.run.part$n > /dev/null && ret=1
@@ -100,10 +100,10 @@ status=$((status+ret))
 
 echo_i "checking cache is used for subsequent +cd query ($n)"
 ret=0
-dig_with_opts +dnssec bar.example. a @10.53.0.5 > dig.out.ns5.test$n || ret=1
+dig_with_opts +dnssec bar.example2. a @10.53.0.5 > dig.out.ns5.test$n || ret=1
 grep "SERVFAIL" dig.out.ns5.test$n > /dev/null || ret=1
 nextpart ns5/named.run > ns5/named.run.part$n
-grep 'servfail cache hit bar.example/A (CD=1)' ns5/named.run.part$n > /dev/null || ret=1
+grep 'servfail cache hit bar.example2/A (CD=1)' ns5/named.run.part$n > /dev/null || ret=1
 n=$((n+1))
 if [ $ret != 0 ]; then echo_i "failed"; fi
 status=$((status+ret))