From: Evan Hunt Date: Sun, 30 Oct 2022 08:19:35 +0000 (-0700) Subject: make dupsigs test less timing-sensitive X-Git-Tag: v9.19.7~22^2 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=d9b85cbaaeda81d5f5351a1b463ad7e509bf76cf;p=thirdparty%2Fbind9.git make dupsigs test less timing-sensitive the dupsigs test is prone to failing on slow CI machines because the first test can occur before the zone is fully signed. instead of just waiting ten seconds arbitrarily, we now check every second, and allow up to 30 seconds before giving up. --- diff --git a/bin/tests/system/dupsigs/tests.sh b/bin/tests/system/dupsigs/tests.sh index 2901fede3b9..ae05cd124a7 100644 --- a/bin/tests/system/dupsigs/tests.sh +++ b/bin/tests/system/dupsigs/tests.sh @@ -12,13 +12,30 @@ . ../conf.sh status=0 + +# Wait for the zone to be fully signed before beginning test +# +# We expect the zone to have the following: +# +# - 5 signatures for signing.test. +# - 3 signatures for ns.signing.test. +# - 2 x 500 signatures for a{0000-0499}.signing.test. +# +# for a total of 1008. +fully_signed () { + $DIG axfr signing.test -p ${PORT} @10.53.0.1 | + awk 'BEGIN { lines = 0 } + $4 == "RRSIG" {lines++} + END { if (lines != 1008) exit(1) }' +} +retry_quiet 30 fully_signed || ret=1 + start=`date +%s` -end=`expr $start + 150` -sleep 10 # wait for a bit for the initial signing -now=`expr $start + 10` -while test $now -lt $end -do - et=`expr $now - $start` +now=$start +end=$((start + 140)) + +while [ $now -lt $end ]; do + et=$((now - start)) echo "=============== $et ============" $JOURNALPRINT ns1/signing.test.db.signed.jnl | $PERL check_journal.pl $DIG axfr signing.test -p ${PORT} @10.53.0.1 > dig.out.at$et @@ -27,7 +44,7 @@ do if [ ${et} -ne 0 -a ${lines} -ne 1008 ] then echo_i "failed" - status=`expr $status + 1` + status=$((status + 1)) fi sleep 5 now=`date +%s`