]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Make digdelv test work in different network envs
authorTom Krizek <tkrizek@isc.org>
Wed, 5 Oct 2022 13:59:13 +0000 (15:59 +0200)
committerTom Krizek <tkrizek@isc.org>
Wed, 19 Oct 2022 13:32:44 +0000 (15:32 +0200)
When a target server is unreachable, the varying network conditions may
cause different ICMP message (or no message). The host unreachable
message was discovered when attempting to run the test locally while
connected to a VPN network which handles all traffic.

Extend the dig output check with "host unreachable" message to avoid a
false negative test result in certain network environments.

(cherry picked from commit 1e7d832342aa2aaaeb8ef1710ec095dfcade4c6d)

bin/tests/system/digdelv/tests.sh

index 939560737f811c50f9e36237609288a039ba1ee0..c630ae1e8ac244bd005b32764df88f370f2e3cf4 100644 (file)
@@ -1023,7 +1023,7 @@ if [ -x "$DIG" ] ; then
   echo_i "check that dig tries the next server after a UDP socket network unreachable error ($n)"
   ret=0
   dig_with_opts @192.0.2.128 @10.53.0.3 a.example > dig.out.test$n 2>&1 || ret=1
-  test $(grep -F -e "connection refused" -e "timed out" -e "network unreachable" dig.out.test$n | wc -l) -eq 3 || ret=1
+  test $(grep -F -e "connection refused" -e "timed out" -e "network unreachable" -e "host unreachable" dig.out.test$n | wc -l) -eq 3 || ret=1
   grep -F "status: NOERROR" dig.out.test$n > /dev/null || ret=1
   if [ $ret -ne 0 ]; then echo_i "failed"; fi
   status=$((status+ret))
@@ -1032,7 +1032,7 @@ if [ -x "$DIG" ] ; then
   echo_i "check that dig tries the next server after a TCP socket network unreachable error ($n)"
   ret=0
   dig_with_opts +tcp @192.0.2.128 @10.53.0.3 a.example > dig.out.test$n 2>&1 || ret=1
-  test $(grep -F -e "connection refused" -e "timed out" -e "network unreachable" dig.out.test$n | wc -l) -eq 3 || ret=1
+  test $(grep -F -e "connection refused" -e "timed out" -e "network unreachable" -e "host unreachable" dig.out.test$n | wc -l) -eq 3 || ret=1
   grep -F "status: NOERROR" dig.out.test$n > /dev/null || ret=1
   if [ $ret -ne 0 ]; then echo_i "failed"; fi
   status=$((status+ret))