]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Ignore dig errors in +short comparisons in tests
authorTom Krizek <tkrizek@isc.org>
Mon, 13 Feb 2023 12:58:47 +0000 (13:58 +0100)
committerTom Krizek <tkrizek@isc.org>
Tue, 14 Feb 2023 12:10:49 +0000 (13:10 +0100)
Tests using diff to compare outputs of dig +short shall ignore lines
starting with ";". In dig +short output, such lines should only be
present for errors such as network issues. Since we utilize dig's
default timeout/retry mechanisms, these transitory issues should be
ignored and only the final output should be considered during the diff
comparison.

bin/tests/system/inline/tests.sh
bin/tests/system/unknown/tests.sh

index fb23fc5ea7a734f36493e7fa860495c8c2303b2b..32436b0b5e1a71304476cb49e147533b62679d26 100755 (executable)
@@ -960,7 +960,7 @@ do
        sleep 1
 done
 # Sanity check: the SOA record should be unchanged
-$DIG $DIGOPTS +short @10.53.0.3 primary SOA > dig.out.ns3.test$n.2 || ret=1
+$DIG $DIGOPTS +short @10.53.0.3 primary SOA | grep -v '^;' > dig.out.ns3.test$n.2
 diff dig.out.ns3.test$n.1  dig.out.ns3.test$n.2 > /dev/null || ret=1
 if [ $ret != 0 ]; then echo_i "failed"; fi
 status=$((status + ret))
@@ -984,7 +984,7 @@ _includefile_loaded() {
 }
 retry_quiet 10 _includefile_loaded
 # Sanity check: the SOA record should be changed
-$DIG $DIGOPTS +short @10.53.0.3 primary SOA > dig.out.ns3.test$n.2 || ret=1
+$DIG $DIGOPTS +short @10.53.0.3 primary SOA | grep -v '^;' > dig.out.ns3.test$n.2
 diff dig.out.ns3.test$n.1  dig.out.ns3.test$n.2 > /dev/null && ret=1
 if [ $ret != 0 ]; then echo_i "failed"; fi
 status=$((status + ret))
index d2fe9968607a9d48ceec5634648339788f33e201..421fac66efb796071e8f8ae894407a3c51571fd0 100644 (file)
@@ -18,12 +18,17 @@ n=0
 
 DIGOPTS="-p ${PORT}"
 
+dig_cmd() {
+       # shellcheck disable=SC2086
+       "$DIG" $DIGOPTS "$@" | grep -v '^;'
+}
+
 n=$((n+1))
 echo_i "querying for various representations of an IN A record ($n)"
 for i in 1 2 3 4 5 6 7 8 9 10 11 12
 do
        ret=0
-       $DIG +short $DIGOPTS @10.53.0.1 a$i.example a in > dig.out.$i.test$n || ret=1
+       dig_cmd +short @10.53.0.1 a$i.example a in > dig.out.$i.test$n
        echo 10.0.0.1 | diff - dig.out.$i.test$n || ret=1
        if [ $ret != 0 ]
        then
@@ -37,7 +42,7 @@ echo_i "querying for various representations of an IN TXT record ($n)"
 for i in 1 2 3 4 5 6 7
 do
        ret=0
-       $DIG +short $DIGOPTS @10.53.0.1 txt$i.example txt in > dig.out.$i.test$n || ret=1
+       dig_cmd +short @10.53.0.1 txt$i.example txt in > dig.out.$i.test$n
        echo '"hello"' | diff - dig.out.$i.test$n || ret=1
        if [ $ret != 0 ]
        then
@@ -51,7 +56,7 @@ echo_i "querying for various representations of an IN TYPE123 record ($n)"
 for i in 1 2 3
 do
        ret=0
-       $DIG +short $DIGOPTS @10.53.0.1 unk$i.example type123 in > dig.out.$i.test$n || ret=1
+       dig_cmd +short @10.53.0.1 unk$i.example type123 in > dig.out.$i.test$n
        echo '\# 1 00' | diff - dig.out.$i.test$n || ret=1
        if [ $ret != 0 ]
        then
@@ -63,7 +68,7 @@ done
 n=$((n+1))
 echo_i "querying for NULL record ($n)"
 ret=0
-$DIG +short $DIGOPTS @10.53.0.1 null.example null in > dig.out.test$n || ret=1
+dig_cmd +short @10.53.0.1 null.example null in > dig.out.test$n
 echo '\# 1 00' | diff - dig.out.test$n || ret=1
 [ $ret = 0 ] || echo_i "failed"
 status=`expr $status + $ret`
@@ -71,7 +76,7 @@ status=`expr $status + $ret`
 n=$((n+1))
 echo_i "querying for empty NULL record ($n)"
 ret=0
-$DIG +short $DIGOPTS @10.53.0.1 empty.example null in > dig.out.test$n || ret=1
+dig_cmd +short @10.53.0.1 empty.example null in > dig.out.test$n
 echo '\# 0' | diff - dig.out.test$n || ret=1
 [ $ret = 0 ] || echo_i "failed"
 status=`expr $status + $ret`
@@ -81,7 +86,7 @@ echo_i "querying for various representations of a CLASS10 TYPE1 record ($n)"
 for i in 1 2
 do
        ret=0
-       $DIG +short $DIGOPTS @10.53.0.1 a$i.example a class10 > dig.out.$i.test$n || ret=1
+       dig_cmd +short @10.53.0.1 a$i.example a class10 > dig.out.$i.test$n
        echo '\# 4 0A000001' | diff - dig.out.$i.test$n || ret=1
        if [ $ret != 0 ]
        then
@@ -95,7 +100,7 @@ echo_i "querying for various representations of a CLASS10 TXT record ($n)"
 for i in 1 2 3 4
 do
        ret=0
-       $DIG +short $DIGOPTS @10.53.0.1 txt$i.example txt class10 > dig.out.$i.test$n || ret=1
+       dig_cmd +short @10.53.0.1 txt$i.example txt class10 > dig.out.$i.test$n
        echo '"hello"' | diff - dig.out.$i.test$n || ret=1
        if [ $ret != 0 ]
        then
@@ -109,7 +114,7 @@ echo_i "querying for various representations of a CLASS10 TYPE123 record ($n)"
 for i in 1 2
 do
        ret=0
-       $DIG +short $DIGOPTS @10.53.0.1 unk$i.example type123 class10 > dig.out.$i.test$n || ret=1
+       dig_cmd +short @10.53.0.1 unk$i.example type123 class10 > dig.out.$i.test$n
        echo '\# 1 00' | diff - dig.out.$i.test$n || ret=1
        if [ $ret != 0 ]
        then
@@ -136,7 +141,7 @@ n=$((n+1))
 echo_i "checking large unknown record loading on primary ($n)"
 for try in 0 1 2 3 4 5 6 7 8 9; do
     ret=0
-    $DIG $DIGOPTS @10.53.0.1 +tcp +short large.example TYPE45234 > dig.out.$i.test$n || { ret=1 ; echo_i "dig failed" ; }
+    dig_cmd @10.53.0.1 +tcp +short large.example TYPE45234 > dig.out.$i.test$n
     diff -s large.out dig.out.$i.test$n > /dev/null || { ret=1 ; echo_i "diff failed"; }
     [ "$ret" -eq 0 ] && break
     sleep 1
@@ -148,7 +153,7 @@ n=$((n+1))
 echo_i "checking large unknown record loading on secondary ($n)"
 for try in 0 1 2 3 4 5 6 7 8 9; do
     ret=0
-    $DIG $DIGOPTS @10.53.0.2 +tcp +short large.example TYPE45234 > dig.out.$i.test$n || { ret=1 ; echo_i "dig failed" ; }
+    dig_cmd @10.53.0.2 +tcp +short large.example TYPE45234 > dig.out.$i.test$n
     diff -s large.out dig.out.$i.test$n > /dev/null || { ret=1 ; echo_i "diff failed"; }
     [ "$ret" -eq 0 ] && break
     sleep 1
@@ -166,7 +171,7 @@ n=$((n+1))
 echo_i "checking large unknown record loading on secondary ($n)"
 for try in 0 1 2 3 4 5 6 7 8 9; do
     ret=0
-    $DIG $DIGOPTS @10.53.0.2 +tcp +short large.example TYPE45234 > dig.out.$i.test$n || { ret=1 ; echo_i "dig failed" ; }
+    dig_cmd @10.53.0.2 +tcp +short large.example TYPE45234 > dig.out.$i.test$n
     diff -s large.out dig.out.$i.test$n > /dev/null || { ret=1 ; echo_i "diff failed"; }
     [ "$ret" -eq 0 ] && break
     sleep 1
@@ -177,7 +182,7 @@ status=`expr $status + $ret`
 n=$((n+1))
 echo_i "checking large unknown record loading on inline secondary ($n)"
 ret=0
-$DIG $DIGOPTS @10.53.0.3 +tcp +short large.example TYPE45234 > dig.out.test$n || { ret=1 ; echo_i "dig failed" ; }
+dig_cmd @10.53.0.3 +tcp +short large.example TYPE45234 > dig.out.test$n
 diff large.out dig.out.test$n > /dev/null || { ret=1 ; echo_i "diff failed"; }
 [ $ret = 0 ] || echo_i "failed"
 status=`expr $status + $ret`
@@ -192,7 +197,7 @@ n=$((n+1))
 echo_i "checking large unknown record loading on inline secondary ($n)"
 for try in 0 1 2 3 4 5 6 7 8 9; do
     ret=0
-    $DIG $DIGOPTS @10.53.0.3 +tcp +short large.example TYPE45234 > dig.out.$i.test$n || { ret=1 ; echo_i "dig failed" ; }
+    dig_cmd @10.53.0.3 +tcp +short large.example TYPE45234 > dig.out.$i.test$n
     diff large.out dig.out.$i.test$n > /dev/null || { ret=1 ; echo_i "diff failed"; }
     [ "$ret" -eq 0 ] && break
     sleep 1
@@ -203,7 +208,7 @@ status=`expr $status + $ret`
 n=$((n+1))
 echo_i "check that '"'"\\#"'"' is not treated as the unknown escape sequence ($n)"
 ret=0
-$DIG $DIGOPTS @10.53.0.1 +tcp +short txt8.example txt > dig.out.test$n
+dig_cmd @10.53.0.1 +tcp +short txt8.example txt > dig.out.test$n
 echo '"#" "2" "0145"' | diff - dig.out.test$n || ret=1
 [ $ret = 0 ] || echo_i "failed"
 status=`expr $status + $ret`
@@ -211,7 +216,7 @@ status=`expr $status + $ret`
 n=$((n+1))
 echo_i "check that 'TXT \# text' is not treated as the unknown escape sequence ($n)"
 ret=0
-$DIG $DIGOPTS @10.53.0.1 +tcp +short txt9.example txt > dig.out.test$n
+dig_cmd @10.53.0.1 +tcp +short txt9.example txt > dig.out.test$n
 echo '"#" "text"' | diff - dig.out.test$n || ret=1
 [ $ret = 0 ] || echo_i "failed"
 status=`expr $status + $ret`