Testsuite: account for platforms not supporting TFO
[exim.git] / test / runtest
index bdba26fc9055421879a8ecd7cc2f440bdc1b61c0..afaaee3b21e01d54ade86c90a21cb1bd2faee161 100755 (executable)
@@ -1,4 +1,6 @@
-#! /usr/bin/perl -w
+#! /usr/bin/env perl
+# We use env, because in some environments of our build farm
+# the Perl 5.010 interpreter is only reachable via $PATH
 
 ###############################################################################
 # This is the controlling script for the "new" test suite for Exim. It should #
@@ -14,7 +16,9 @@
 ###############################################################################
 
 #use strict;
-#use 5.010;
+use 5.010;
+use warnings;
+
 use Errno;
 use FileHandle;
 use IO::Socket::INET;
@@ -1041,6 +1045,14 @@ RESET_AFTER_EXTRA_LINE_READ:
     # Spool filesystem free space changes on different systems.
     s/^((?:spool|log) directory space =) -?\d+K (inodes =)\s*-?\d+/$1 nnnnnK $2 nnnnn/;
 
+    # Not all platforms support TCP Fast Open, and the compile omits the check
+    if (/^((>>> )?Connecting to .* )in hosts_try_fastopen\? no \(option unset\)$/)
+      {
+      my $p = $1;
+      $_ = <IN>;
+      s/^/$p/;
+      }
+
     # When Exim is checking the size of directories for maildir, it uses
     # the check_dir_size() function to scan directories. Of course, the order
     # of the files that are obtained using readdir() varies from system to
@@ -1439,6 +1451,9 @@ $munges =
     { 'stdout' => 's/^\d\d:\d\d:\d\d\s+\d+ //;
                   s/Process \d+ is ready for new message/Process pppp is ready for new message/'
     },
+
+    'timeout_errno' =>         # actual errno differs Solaris vs. Linux
+    { 'mainlog' => 's/(host deferral .* errno) <\d+> /$1 <EEE> /' },
   };
 
 
@@ -2595,6 +2610,7 @@ else
   print "Unable to extract exim_user from binary.\n";
   print "Check if Exim refused to run; if so, consider:\n";
   print "  TRUSTED_CONFIG_LIST ALT_CONFIG_PREFIX WHITELIST_D_MACROS\n";
+  print "If debug permission denied, are you in the exim group?\n";
   die "Failing to get information from binary.\n";
   }