git://git.exim.org
/
users
/
jgh
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Testsuite: Move 2040 to 1101 (hanging pipelining connections)
[users/jgh/exim.git]
/
test
/
runtest
diff --git
a/test/runtest
b/test/runtest
index 358e2bab8d54420b79cbca0d1ca60ed8a4a8feab..ffa0a7112973c3bb5c6ba5ede43fe128b975fa2c 100755
(executable)
--- a/
test/runtest
+++ b/
test/runtest
@@
-800,6
+800,12
@@
RESET_AFTER_EXTRA_LINE_READ:
# Also, the length of space at the end of the host line is dependent
# on the length of the longest line, so strip it also on otherwise
# un-rewritten lines like localhost
# Also, the length of space at the end of the host line is dependent
# on the length of the longest line, so strip it also on otherwise
# un-rewritten lines like localhost
+ #
+ # host 127.0.0.1 [127.0.0.1]
+ # host 10.0.0.1 [10.0.0.1]-
+ #
+ # host 127.0.0.1 [127.0.0.1]--
+ # host 169.16.16.16 [169.16.16.10]
s/^\s+host\s(\S+)\s+(\S+)/ host $1 $2/;
s/^\s+(host\s\S+\s\S+)\s+(port=.*)/ host $1 $2/;
s/^\s+host\s(\S+)\s+(\S+)/ host $1 $2/;
s/^\s+(host\s\S+\s\S+)\s+(port=.*)/ host $1 $2/;
@@
-811,7
+817,7
@@
RESET_AFTER_EXTRA_LINE_READ:
s/(^|\W)\K\Q$parm_ipv6_stripped\E/ip6:ip6:ip6:ip6:ip6:ip6:ip6:ip6/g;
s/\b\Q$parm_ipv4r\E\b/ip4-reverse/g;
s/(^|\W)\K\Q$parm_ipv6r\E/ip6-reverse/g;
s/(^|\W)\K\Q$parm_ipv6_stripped\E/ip6:ip6:ip6:ip6:ip6:ip6:ip6:ip6/g;
s/\b\Q$parm_ipv4r\E\b/ip4-reverse/g;
s/(^|\W)\K\Q$parm_ipv6r\E/ip6-reverse/g;
- s/^
(\s+host\s\S+\s+\[\S+\]) +$/$1 /;
+ s/^
\s+host\s\S+\s+\[\S+\]\K +$//; # strip, not collapse the trailing whitespace
# ======== Test network IP addresses ========
# ======== Test network IP addresses ========
@@
-887,7
+893,7
@@
RESET_AFTER_EXTRA_LINE_READ:
# The sizes of filter files may vary because of the substitution of local
# filenames, logins, etc.
# The sizes of filter files may vary because of the substitution of local
# filenames, logins, etc.
- s/^\d+(?= bytes read from )/ssss/;
+ s/^\d+(?=
(\(tainted\) )?
bytes read from )/ssss/;
# ======== OpenSSL error messages ========
# ======== OpenSSL error messages ========
@@
-927,14
+933,17
@@
RESET_AFTER_EXTRA_LINE_READ:
last if !defined $_;
last if !defined $_;
+ # SRS timestamps and signatures vary by hostname and from run to run
+
+ s/SRS0=....=..=[^=]+=[^@]+\@test.ex/SRS0=ZZZZ=YY=the.local.host.name=CALLER\@test.ex/;
+
+
# ======== Output from the "fd" program about open descriptors ========
# The statuses seem to be different on different operating systems, but
# at least we'll still be checking the number of open fd's.
s/max fd = \d+/max fd = dddd/;
# ======== Output from the "fd" program about open descriptors ========
# The statuses seem to be different on different operating systems, but
# at least we'll still be checking the number of open fd's.
s/max fd = \d+/max fd = dddd/;
- s/status=0 RDONLY/STATUS/g;
- s/status=1 WRONLY/STATUS/g;
- s/status=2 RDWR/STATUS/g;
+ s/status=[0-9a-f]+ (?:RDONLY|WRONLY|RDWR)/STATUS/g;
# ======== Contents of spool files ========
# ======== Contents of spool files ========
@@
-1034,6
+1043,7
@@
RESET_AFTER_EXTRA_LINE_READ:
s/(?<=^>>>>>>>>>>>>>>>> Exim pid=)\d+(?= terminating)/pppp/;
s/^(proxy-proc \w{5}-pid) \d+$/$1 pppp/;
s/(?<=^>>>>>>>>>>>>>>>> Exim pid=)\d+(?= terminating)/pppp/;
s/^(proxy-proc \w{5}-pid) \d+$/$1 pppp/;
+ s/^(?:\s*\d+ )(exec .* -oPX)$/pppp $1/;
# IP address lookups use gethostbyname() when IPv6 is not supported,
# and gethostbyname2() or getipnodebyname() when it is.
# IP address lookups use gethostbyname() when IPv6 is not supported,
# and gethostbyname2() or getipnodebyname() when it is.
@@
-1051,6
+1061,9
@@
RESET_AFTER_EXTRA_LINE_READ:
next if /OpenSSL compile-time version: OpenSSL \d+[\.\da-z]+/;
next if /OpenSSL runtime version: OpenSSL \d+[\.\da-z]+/;
next if /OpenSSL compile-time version: OpenSSL \d+[\.\da-z]+/;
next if /OpenSSL runtime version: OpenSSL \d+[\.\da-z]+/;
+ # this is timing-dependent
+ next if /^OpenSSL: creating STEK$/;
+
# drop lookups
next if /^Lookups \(built-in\):/;
next if /^Loading lookup modules from/;
# drop lookups
next if /^Lookups \(built-in\):/;
next if /^Loading lookup modules from/;
@@
-1185,6
+1198,9
@@
RESET_AFTER_EXTRA_LINE_READ:
# Platform-dependent error strings
s/Operation timed out/Connection timed out/;
# Platform-dependent error strings
s/Operation timed out/Connection timed out/;
+ # Platform differences on disconnect
+ s/unexpected disconnection while reading SMTP command from \[127.0.0.1\] \K\(error: Connection reset by peer\) //;
+
# Platform-dependent resolver option bits
s/^ (?:writing|update) neg-cache entry for [^,]+-\K[0-9a-f]+, ttl/xxxx, ttl/;
# Platform-dependent resolver option bits
s/^ (?:writing|update) neg-cache entry for [^,]+-\K[0-9a-f]+, ttl/xxxx, ttl/;
@@
-1195,6
+1211,11
@@
RESET_AFTER_EXTRA_LINE_READ:
# are unset, because dane ain't always there.
next if /in\shosts_require_dane\?\sno\s\(option\sunset\)/x;
# are unset, because dane ain't always there.
next if /in\shosts_require_dane\?\sno\s\(option\sunset\)/x;
+ # daemon notifier socket
+ s/^(creating notifier socket) .*$/$1/;
+ s/^(\s*\d+|ppppp) (creating notifier socket) .+$/ppppp $2/;
+ next if /unlinking notifier socket/;
+
# DISABLE_OCSP
next if /in hosts_requ(est|ire)_ocsp\? (no|yes)/;
# DISABLE_OCSP
next if /in hosts_requ(est|ire)_ocsp\? (no|yes)/;
@@
-1248,11
+1269,12
@@
RESET_AFTER_EXTRA_LINE_READ:
next if /^DKIM \[[^[]+\] (Header hash|b) computed:/;
# Not all platforms support TCP Fast Open, and the compile omits the check
next if /^DKIM \[[^[]+\] (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\)|yes \(matched "\*"\))\n$//)
+ if (s/\S+ in hosts_try_fastopen\? (no \(option unset\)|
no \(end of list\)|
yes \(matched "\*"\))\n$//)
{
{
+ chomp;
$_ .= <IN>;
s/ \.\.\. >>> / ... /;
$_ .= <IN>;
s/ \.\.\. >>> / ... /;
- if (s/ non-TFO mode connection attempt to 224.0.0.0, 0 data\b$//) { $_ .= <IN>; }
+ if (s/ non-TFO mode connection attempt to 224.0.0.0, 0 data\b$//) {
chomp;
$_ .= <IN>; }
s/Address family not supported by protocol family/Network Error/;
s/Network is unreachable/Network Error/;
}
s/Address family not supported by protocol family/Network Error/;
s/Network is unreachable/Network Error/;
}
@@
-1304,6
+1326,13
@@
RESET_AFTER_EXTRA_LINE_READ:
# Platform differences in errno strings
s/ SMTP\(Operation timed out\)<</ SMTP(Connection timed out)<</;
# Platform differences in errno strings
s/ SMTP\(Operation timed out\)<</ SMTP(Connection timed out)<</;
+ # Platform differences for errno values (eg. Hurd)
+ s/^errno = \d+$/errno = EEE/;
+ s/^writing error \d+: /writing error EEE: /;
+
+ # Some platforms have to flip to slow-mode taint-checking
+ next if /switching to slow-mode taint checking/;
+
# 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
# 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
@@
-1398,6
+1427,11
@@
RESET_AFTER_EXTRA_LINE_READ:
s/(?:\[[^\]]*\]:|port )\K$parm_port_n/PORT_N/;
s/I=\[[^\]]*\]:\K\d+/ppppp/;
s/(?:\[[^\]]*\]:|port )\K$parm_port_n/PORT_N/;
s/I=\[[^\]]*\]:\K\d+/ppppp/;
+ # Platform differences for errno values (eg. Hurd). Leave 0 and negative numbers alone.
+ s/R=\w+ T=\w+ defer\K \([1-9]\d*\): / (EEE): /;
+
+ # Platform differences in errno strings
+ s/Arg list too long/Argument list too long/;
}
# ======== mail ========
}
# ======== mail ========
@@
-1539,7
+1573,7
@@
if (! -e $sf_current)
log_failure($log_failed_filename, $testno, $rf);
log_test($log_summary_filename, $testno, 'F') if ($force_continue);
}
log_failure($log_failed_filename, $testno, $rf);
log_test($log_summary_filename, $testno, 'F') if ($force_continue);
}
- return 1 if /^c$/i && $rf !~ /paniclog/ &&
$rsf !~ /paniclog/
;
+ return 1 if /^c$/i && $rf !~ /paniclog/ &&
(!defined $rsf || $rsf !~ /paniclog/)
;
last if (/^[sc]$/);
}
last if (/^[sc]$/);
}
@@
-1805,7
+1839,7
@@
$munges =
},
'timeout_errno' => # actual errno differs Solaris vs. Linux
},
'timeout_errno' => # actual errno differs Solaris vs. Linux
- { 'mainlog' => 's/(
host
deferral .* errno) <\d+> /$1 <EEE> /' },
+ { 'mainlog' => 's/(
(?:host|message)
deferral .* errno) <\d+> /$1 <EEE> /' },
'peer_terminated_conn' => # actual error differs FreedBSD vs. Linux
{ 'stderr' => 's/^( SMTP\()Connection reset by peer(\)<<)$/$1closed$2/' },
'peer_terminated_conn' => # actual error differs FreedBSD vs. Linux
{ 'stderr' => 's/^( SMTP\()Connection reset by peer(\)<<)$/$1closed$2/' },
@@
-2298,8
+2332,7
@@
if (/^gnutls/)
# The "killdaemon" command should ultimately follow the starting of any Exim
# The "killdaemon" command should ultimately follow the starting of any Exim
-# daemon with the -bd option. We kill with SIGINT rather than SIGTERM to stop
-# it outputting "Terminated" to the terminal when not in the background.
+# daemon with the -bd option.
if (/^killdaemon/)
{
if (/^killdaemon/)
{
@@
-2311,14
+2344,14
@@
if (/^killdaemon/)
print ">> killdaemon: recovered pid $pid\n" if $debug;
if ($pid)
{
print ">> killdaemon: recovered pid $pid\n" if $debug;
if ($pid)
{
- run_system("sudo /bin/kill -
INT
$pid");
+ run_system("sudo /bin/kill -
TERM
$pid");
wait;
}
} else {
$pid = `cat $parm_cwd/spool/exim-daemon.*`;
if ($pid)
{
wait;
}
} else {
$pid = `cat $parm_cwd/spool/exim-daemon.*`;
if ($pid)
{
- run_system("sudo /bin/kill -
INT
$pid");
+ run_system("sudo /bin/kill -
TERM
$pid");
close DAEMONCMD; # Waits for process
}
}
close DAEMONCMD; # Waits for process
}
}
@@
-3443,7
+3476,7
@@
while (not ($parm_ipv4 and $parm_ipv6) and defined($_ = <IFCONFIG>))
{
if (/^(?:[0-9]+: )?([a-z0-9]+): /) { $ifname = $1; }
{
if (/^(?:[0-9]+: )?([a-z0-9]+): /) { $ifname = $1; }
- if (not $parm_ipv4 and /^\s*inet(?:\saddr
)?:?\s?
(\d+\.\d+\.\d+\.\d+)(?:\/\d+)?\s/i)
+ if (not $parm_ipv4 and /^\s*inet(?:\saddr
(?:ess))?:?\s*
(\d+\.\d+\.\d+\.\d+)(?:\/\d+)?\s/i)
{
# It would be nice to be able to vary the /16 used for manyhome; we could take
# an option to runtest used here - but we'd also have to pass it on to fakens.
{
# It would be nice to be able to vary the /16 used for manyhome; we could take
# an option to runtest used here - but we'd also have to pass it on to fakens.
@@
-3452,7
+3485,8
@@
while (not ($parm_ipv4 and $parm_ipv6) and defined($_ = <IFCONFIG>))
$parm_ipv4 = $1;
}
$parm_ipv4 = $1;
}
- if (not $parm_ipv6 and /^\s*inet6(?:\saddr)?:?\s?([abcdef\d:]+)(?:%[^ \/]+)?(?:\/\d+)?/i)
+ if ( (not $parm_ipv6 or $parm_ipv6 =~ /%/)
+ and /^\s*inet6(?:\saddr(?:ess))?:?\s*([abcdef\d:]+)(?:%[^ \/]+)?(?:\/\d+)?/i)
{
next if $1 eq '::' or $1 eq '::1' or $1 =~ /^ff00/i or $1 =~ /^fe80::1/i;
$parm_ipv6 = $1;
{
next if $1 eq '::' or $1 eq '::1' or $1 =~ /^ff00/i or $1 =~ /^fe80::1/i;
$parm_ipv6 = $1;
@@
-3821,6
+3855,10
@@
DIR: for (my $i = 0; $i < @test_dirs; $i++)
}
unlink("$parm_cwd/test-config");
}
}
unlink("$parm_cwd/test-config");
}
+ elsif (/^ipv6-non-linklocal/)
+ {
+ if ($parm_ipv6 =~ /%/) { $wantthis = 0; last; }
+ }
else
{
tests_exit(-1, "Unknown line in \"scripts/$testdir/REQUIRES\": \"$_\"");
else
{
tests_exit(-1, "Unknown line in \"scripts/$testdir/REQUIRES\": \"$_\"");