From 809d55226b7006b0b4e8159ce9934e27e9e762e1 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Tue, 19 May 2020 10:09:51 +1000 Subject: [PATCH] Address race in dnssec system test. 'clear signing records' can fail as the update triggers by the rndc command to clear the signing records may not have completed by the time the subsequent rndc command to test that the records have been removed is commenced. Loop several times to prevent false negative. (cherry picked from commit 353018c0e5a428c8314c103267fcfd18213e9e39) --- bin/tests/system/dnssec/tests.sh | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/bin/tests/system/dnssec/tests.sh b/bin/tests/system/dnssec/tests.sh index 101b0b6f6f..20aff6fcfe 100644 --- a/bin/tests/system/dnssec/tests.sh +++ b/bin/tests/system/dnssec/tests.sh @@ -2670,13 +2670,16 @@ if [ $ret != 0 ]; then echo_i "failed"; fi status=`expr $status + $ret` echo_i "clear signing records ($n)" -$RNDCCMD 10.53.0.3 signing -clear all update-nsec3.example > /dev/null || ret=1 -sleep 1 -$RNDCCMD 10.53.0.3 signing -list update-nsec3.example 2>&1 > signing.out -grep "No signing records found" signing.out > /dev/null 2>&1 || { - ret=1 - sed 's/^/ns3 /' signing.out | cat_i +$RNDCCMD 10.53.0.3 signing -clear all update-nsec3.example > /dev/null 2>&1 || ret=1 +check_no_signing_record_found() { + $RNDCCMD 10.53.0.3 signing -list update-nsec3.example > signing.out 2>&1 + grep -q "No signing records found" signing.out || { + sed 's/^/ns3 /' signing.out | cat_i + return 1 + } + return 0 } +retry_quiet 5 check_no_signing_record_found || ret=1 n=`expr $n + 1` if [ $ret != 0 ]; then echo_i "failed"; fi status=`expr $status + $ret`