Merge branch '424-nsupdate-tests-fail-intermittently' into 'master'

Resolve "nsupdate tests fail intermittently"

Closes #424

See merge request isc-projects/bind9!544
This commit is contained in:
Mark Andrews 2018-08-01 21:25:27 -04:00
commit d30f6e5f99

View file

@ -266,7 +266,9 @@ END
n=`expr $n + 1`
ret=0
echo_i "check that unixtime serial number is correctly generated ($n)"
oldserial=`$DIG $DIGOPTS +short unixtime.nil. soa @10.53.0.1 | awk '{print $3}'` || ret=1
$DIG $DIGOPTS +short unixtime.nil. soa @10.53.0.1 > dig.out.old.test$n || ret=1
oldserial=`awk '{print $3}' dig.out.old.test$n` || ret=1
start=`$PERL -e 'print time()."\n";'`
$NSUPDATE <<END > /dev/null 2>&1 || ret=1
server 10.53.0.1 ${PORT}
ttl 600
@ -275,11 +277,14 @@ $NSUPDATE <<END > /dev/null 2>&1 || ret=1
END
now=`$PERL -e 'print time()."\n";'`
sleep 1
serial=`$DIG $DIGOPTS +short unixtime.nil. soa @10.53.0.1 | awk '{print $3}'` || ret=1
[ "$oldserial" -ne "$serial" ] || ret=1
# allow up to 2 seconds difference between the serial
# number and the unix epoch date but no more
$PERL -e 'exit 1 if abs($ARGV[1] - $ARGV[0]) > 2;' $now $serial || ret=1
$DIG $DIGOPTS +short unixtime.nil. soa @10.53.0.1 > dig.out.new.test$n || ret=1
serial=`awk '{print $3}' dig.out.new.test$n` || ret=1
[ "$oldserial" = "$serial" ] && { echo_i "oldserial == serial"; ret=1; }
if [ "$serial" -lt "$start" ]; then
echo_i "out-of-range serial=$serial < start=$start"; ret=1;
elif [ "$serial" -gt "$now" ]; then
echo_i "out-of-range serial=$serial > now=$now"; ret=1;
fi
[ $ret = 0 ] || { echo_i "failed"; status=1; }
ret=0