Always check return from tls_export_cert()
[users/jgh/exim.git] / test / runtest
index 1b6eaabb002f66dfefd4e17d8131fcdcb29d255c..8f6bd28b8b35e8079cb610628a2f1b706e1cd243 100755 (executable)
@@ -772,7 +772,7 @@ RESET_AFTER_EXTRA_LINE_READ:
     }
 
   # Port in host address in spool file output from -Mvh
-  s/^-host_address (.*)\.\d+/-host_address $1.9999/;
+  s/^(--?host_address) (.*)\.\d+/$1 $2.9999/;
 
   if ($dynamic_socket and $dynamic_socket->opened and my $port = $dynamic_socket->sockport) {
     s/^Connecting to 127\.0\.0\.1 port \K$port/<dynamic port>/;
@@ -1154,6 +1154,9 @@ RESET_AFTER_EXTRA_LINE_READ:
     # remote port numbers vary
     s/(Connection request from 127.0.0.1 port) \d{1,5}/$1 sssss/;
 
+    # Platform-dependent error strings
+    s/Operation timed out/Connection timed out/;
+
     # Skip hosts_require_dane checks when the options
     # are unset, because dane ain't always there.
     next if /in\shosts_require_dane\?\sno\s\(option\sunset\)/x;
@@ -1200,6 +1203,9 @@ RESET_AFTER_EXTRA_LINE_READ:
     # Not all platforms build with DKIM enabled
     next if /^PDKIM >> Body data for hash, canonicalized/;
 
+    # Not all platforms build with SPF enabled
+    next if /^(spf_conn_init|SPF_dns_exim_new|spf_compile\.c)/;
+
     # Not all platforms have sendfile support
     next if /^cannot use sendfile for body: no support$/;
 
@@ -1212,6 +1218,7 @@ RESET_AFTER_EXTRA_LINE_READ:
       {
       $_ .= <IN>;
       s/ \.\.\. >>> / ... /;
+      if (s/ non-TFO mode connection attempt to 224.0.0.0, 0 data\b$//) { $_ .= <IN>; }
       s/Address family not supported by protocol family/Network Error/;
       s/Network is unreachable/Network Error/;
       }
@@ -1222,21 +1229,21 @@ RESET_AFTER_EXTRA_LINE_READ:
        Connecting\ to\ [^ ]+\ [^ ]+(\ from\ [^ ]+)?)\ \.\.\.
        \ .*TFO\ mode\ 
        (sendto,\ no\ data:\ EINPROGRESS                        # Linux
-       |connection\ attempt\ to\ [^,]+,\ 0\ data)              # MacOS
+       |connection\ attempt\ to\ [^,]+,\ 0\ data)              # MacOS & no-support
        $/x)
       {
       $_ = $1 . " ... " . <IN>;
-      s/^(.* \.\.\.) [0-9: ]*connected$/$1 connected/;
+      s/^(.* \.\.\.) [0-9: ]*connected$/$1  connected/;
 
-      if (/^Connecting to .* \.\.\. connected$/)
+      if (/^Connecting to .* \.\.\.  connected$/)
        {
        $_ .= <IN>;
-       if (/^(Connecting to .* \.\.\. )connected\n\s+SMTP(\(close\)>>|\(Connection refused\)<<)$/)
+       if (/^(Connecting to .* \.\.\.  )connected\n\s+SMTP(\(close\)>>|\(Connection refused\)<<)$/)
          {
          $_ = $1 . "failed: Connection refused\n" . <IN>;
          s/^(Connecting .*)\n\s+SMTP\(close\)>>$/$1/;
          }
-       elsif (/^(Connecting to .* \.\.\. connected\n)read response data: size=/)
+       elsif (/^(Connecting to .* \.\.\.  connected\n)read response data: size=/)
          { $_ = $1; }
 
        # Date/time in SMTP banner
@@ -1260,6 +1267,9 @@ RESET_AFTER_EXTRA_LINE_READ:
     # TLS resumption is not always supported by the build
     next if /in tls_resumption_hosts\?/;
 
+    # Platform differences in errno strings
+    s/  SMTP\(Operation timed out\)<</  SMTP(Connection timed out)<</;
+
     # 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
@@ -4218,10 +4228,22 @@ foreach $test (@test_list)
           print "==================>\n";
           system("tail -20 test-stdout");
           print "===================\n";
+
           print "stderr tail:\n";
           print "==================>\n";
-          system("tail -20 test-stderr");
+          system("tail -30 test-stderr");
           print "===================\n";
+
+          print "stdout-server tail:\n";
+          print "==================>\n";
+          system("tail -20 test-stdout-server");
+          print "===================\n";
+
+          print "stderr-server tail:\n";
+          print "==================>\n";
+          system("tail -30 test-stderr-server");
+          print "===================\n";
+
           print "... continue forced\n";
           }