Testsuite: avoid picking 0.0.0.0 as the HOSTIPV4; permit 10.0/8 apart from 10.250...
authorJeremy Harris <jgh146exb@wizmail.org>
Fri, 20 Sep 2019 09:23:46 +0000 (10:23 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Sun, 22 Sep 2019 16:27:08 +0000 (17:27 +0100)
Solaris leaves 0.0.0.0 lying around (for not-UP interfaces)
The suite only needs testspace under 10.250.0/16 so we can permit the ret,
making testing on many NATted 10.0/8 subnets possible.

(cherry picked from commit 5c03403d88afcde2bb3f543296b0fca6f05c9f2c)

test/README
test/runtest

index a6bcfd89768d3ace2cf513bcaf3a03ecf4fa03a5..f50ad568e44124e2ed83521d165616fbba4c08ac 100644 (file)
@@ -115,7 +115,7 @@ In order to run this test suite, the following requirements must be met:
     is also an IPv6 address, additional tests are run when the Exim binary
     contains IPv6 support. There are checks in the scripts for a running IPv4
     interface; when one is not found, some tests are skipped (with a warning
-    message).  The local net may not be in 10.0/8 as that is used by the suite.
+    message).  The local net may not be in 10.250.0/16 as that is used by the suite.
 
 (9) Exim must be built with TRUSTED_CONFIG_LIST support, so that the test
     configs can be placed into it.  A suitable file location is .../exim/test/trusted_configs
index 62b24290376f3964a189ebf973841bd77fe7a822..27cbeaa006894efb065b626c9af3be662198719a 100755 (executable)
@@ -3318,6 +3318,7 @@ else
 
 # Find this host's IP addresses - there may be many, of course, but we keep
 # one of each type (IPv4 and IPv6).
+#XXX it would be good to avoid non-UP interfaces
 
 open(IFCONFIG, '-|', (grep { -x "$_/ip" } split /:/, $ENV{PATH}) ? 'ip address' : 'ifconfig -a')
   or die "** Cannot run 'ip address' or 'ifconfig -a'\n";
@@ -3325,7 +3326,8 @@ while (not ($parm_ipv4 and $parm_ipv6) and defined($_ = <IFCONFIG>))
   {
   if (not $parm_ipv4 and /^\s*inet(?:\saddr)?:?\s?(\d+\.\d+\.\d+\.\d+)(?:\/\d+)?\s/i)
     {
-    next if $1 =~ /^(?:127|10)\./;
+    next if $1 =~ /^(?:127|10\.250)\./;
+    next if $1 eq '0.0.0.0';
     $parm_ipv4 = $1;
     }