# time used was fixed when I first started running automatic Exim tests.
# Date/time in header lines and SMTP responses
- s/[A-Z][a-z]{2},\s\d\d?\s[A-Z][a-z]{2}\s\d\d\d\d\s\d\d\:\d\d:\d\d\s[-+]\d{4}
+ s/[A-Z][a-z]{2},\s\d\d?\s[A-Z][a-z]{2}\s\d{4}\s\d\d\:\d\d:\d\d\s[-+]\d{4}
/Tue, 2 Mar 1999 09:44:33 +0000/gx;
# and in a French locale
- s/\S{4},\s\d\d?\s[^,]+\s\d\d\d\d\s\d\d\:\d\d:\d\d\s[-+]\d{4}
+ s/\S{4},\s\d\d?\s[^,]+\s\d{4}\s\d\d\:\d\d:\d\d\s[-+]\d{4}
/dim., 10 f\xE9vr 2019 20:05:49 +0000/gx;
# Date/time in logs and in one instance of a filter test
}
# 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>/;
next if /get\[host\|ipnode\]byname\[2\]\(af=inet6\)/;
next if /DNS lookup of \S+ \(AAAA\) using fakens/;
next if / in dns_ipv4_lookup?/;
+ next if / writing neg-cache entry for .*AAAA/;
if (/DNS lookup of \S+ \(AAAA\) gave NO_DATA/)
{
# 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/;
+
+ # Platform-dependent resolver option bits
+ s/^ (?:writing|update) neg-cache entry for [^,]+-\K[0-9a-f]+, ttl/xxxx, ttl/;
+
+ # timing variance, run-to-run
+ s/^time on queue = \K1s/0s/;
+
# 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;
# SUPPORT_PROXY
next if /host in hosts_proxy\?/;
+ # PIPE_CONNECT
+ next if / in (pipelining_connect_advertise_hosts|hosts_pipe_connect)?\? no /;
+
# Experimental_International
next if / in smtputf8_advertise_hosts\? no \(option unset\)/;
# TCP Fast Open
next if /^(ppppp )?setsockopt FASTOPEN: Network Error/;
- # Experimental_PIPE_CONNECT
- next if / in (pipelining_connect_advertise_hosts|hosts_pipe_connect)?\? no /;
-
# Environment cleaning
next if /\w+ in keep_environment\? (yes|no)/;
# 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$/;
next if /^PDKIM \[[^[]+\] (Header hash|b) computed:/;
# Not all platforms support TCP Fast Open, and the compile omits the check
- if (s/\S+ in hosts_try_fastopen\? no \(option unset\)\n$//)
+ if (s/\S+ in hosts_try_fastopen\? (no \(option unset\)|yes \(matched "\*"\))\n$//)
{
$_ .= <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/;
}
next if /^(ppppp )?setsockopt FASTOPEN: Protocol not available$/;
s/^(Connecting to .* \.\.\. sending) \d+ (nonTFO early-data)$/$1 dd $2/;
+ if (/^([0-9: ]* # possible timestamp
+ Connecting\ to\ [^ ]+\ [^ ]+(\ from\ [^ ]+)?)\ \.\.\.
+ \ .*TFO\ mode\
+ (sendto,\ no\ data:\ EINPROGRESS # Linux
+ |connection\ attempt\ to\ [^,]+,\ 0\ data) # MacOS & no-support
+ $/x)
+ {
+ $_ = $1 . " ... " . <IN>;
+ s/^(.* \.\.\.) [0-9: ]*connected$/$1 connected/;
+
+ if (/^Connecting to .* \.\.\. connected$/)
+ {
+ $_ .= <IN>;
+ 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=/)
+ { $_ = $1; }
+
+ # Date/time in SMTP banner
+ s/[A-Z][a-z]{2},\s\d\d?\s[A-Z][a-z]{2}\s\d{4}\s\d\d\:\d\d:\d\d\s[-+]\d{4}
+ /Tue, 2 Mar 1999 09:44:33 +0000/gx;
+ }
+ }
+
# Specific pointer values reported for DB operations change from run to run
s/^(\s*returned from EXIM_DBOPEN: )(0x)?[0-9a-f]+/${1}0xAAAAAAAA/;
s/^(\s*EXIM_DBCLOSE.)(0x)?[0-9a-f]+/${1}0xAAAAAAAA/;
# 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
else
{ $_ = $prev; }
}
+ # translate gnutls error into the openssl one
+ s/ARC: AMS signing: privkey PEM-block import: \KThe requested data were not available.$/error:0906D06C:PEM routines:PEM_read_bio:no start line/;
# DKIM timestamps
if ( /(DKIM: d=.*) t=([0-9]*) x=([0-9]*) / )
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";
}