git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix too-often retry bug after 4xx with more hosts than hosts_max_retry.
[exim.git]
/
test
/
runtest
diff --git
a/test/runtest
b/test/runtest
index 9d84232ff8e680a1c8798f5dfebbeebc526b76c8..66a0197b94dc6e1a1a150b504d09c8db322dacdf 100755
(executable)
--- a/
test/runtest
+++ b/
test/runtest
@@
-1,6
+1,6
@@
#! /usr/bin/perl -w
#! /usr/bin/perl -w
-# $Cambridge: exim/test/runtest,v 1.1
1 2006/07/03 15:39:06
ph10 Exp $
+# $Cambridge: exim/test/runtest,v 1.1
4 2006/09/05 13:24:10
ph10 Exp $
###############################################################################
# This is the controlling script for the "new" test suite for Exim. It should #
###############################################################################
# This is the controlling script for the "new" test suite for Exim. It should #
@@
-23,7
+23,7
@@
use Socket;
# Start by initializing some global variables
# Start by initializing some global variables
-$testversion = "4.6
2 (20-Apr
-06)";
+$testversion = "4.6
4 (05-Sep
-06)";
$cf = "bin/cf";
$cr = "\r";
$cf = "bin/cf";
$cr = "\r";
@@
-98,6
+98,7
@@
sub inthandler { print "\n"; tests_exit(-1, "Caught SIGINT"); }
sub do_substitute{
s?\bCALLER\b?$parm_caller?g;
sub do_substitute{
s?\bCALLER\b?$parm_caller?g;
+s?\bCALLERGROUP\b?$parm_caller_group?g;
s?\bCALLER_UID\b?$parm_caller_uid?g;
s?\bCALLER_GID\b?$parm_caller_gid?g;
s?\bCLAMSOCKET\b?$parm_clamsocket?g;
s?\bCALLER_UID\b?$parm_caller_uid?g;
s?\bCALLER_GID\b?$parm_caller_gid?g;
s?\bCLAMSOCKET\b?$parm_clamsocket?g;
@@
-358,6
+359,10
@@
while(<IN>)
# Random local part in callout cache testing
s/myhost.test.ex-\d+-testing/myhost.test.ex-dddddddd-testing/;
# Random local part in callout cache testing
s/myhost.test.ex-\d+-testing/myhost.test.ex-dddddddd-testing/;
+ # File descriptor numbers may vary
+ s/^writing data block fd=\d+/writing data block fd=dddd/;
+ s/running as transport filter: write=\d+ read=\d+/running as transport filter: write=dddd read=dddd/;
+
# ======== Dumpdb output ========
# This must be before the general date/date munging.
# ======== Dumpdb output ========
# This must be before the general date/date munging.
@@
-414,7
+419,7
@@
while(<IN>)
$_ = " first failed=dddd last try=dddd next try=+$next $4\n";
}
s/^(\s*)now=\d+ first_failed=\d+ next_try=\d+ expired=(\d)/$1now=tttt first_failed=tttt next_try=tttt expired=$2/;
$_ = " first failed=dddd last try=dddd next try=+$next $4\n";
}
s/^(\s*)now=\d+ first_failed=\d+ next_try=\d+ expired=(\d)/$1now=tttt first_failed=tttt next_try=tttt expired=$2/;
- s/^(\s*)received_time=\d+ diff=\d+ timeout=(\d+)/$1
now=tttt
received_time=tttt diff=tttt timeout=$2/;
+ s/^(\s*)received_time=\d+ diff=\d+ timeout=(\d+)/$1received_time=tttt diff=tttt timeout=$2/;
# Time to retry may vary
s/time to retry = \S+/time to retry = tttt/;
# Time to retry may vary
s/time to retry = \S+/time to retry = tttt/;
@@
-585,7
+590,7
@@
while(<IN>)
# ======== Values in spool space failure message ========
# ======== Values in spool space failure message ========
- s/space=\d+ inodes=\d+/space=xxxxx inodes=xxxxx/;
+ s/space=\d+ inodes=
[+-]?
\d+/space=xxxxx inodes=xxxxx/;
# ======== Filter sizes ========
# ======== Filter sizes ========
@@
-859,7
+864,7
@@
my($rf,$rsf,$mf,$sf,$sortfile) = @_;
if (! -e $sf)
{
if (! -e $sf)
{
- return 0 if (! -s $rf &&
! -s $rsf
);
+ return 0 if (! -s $rf &&
(! defined $rsf || ! -s $rsf)
);
print "\n";
print "** $rf is not empty\n" if (-s $rf);
print "\n";
print "** $rf is not empty\n" if (-s $rf);
@@
-1686,9
+1691,11
@@
elsif (/^([A-Z_]+=\S+\s+)?(\d+)?\s*(sudo\s+)?exim(_\S+)?\s+(.*)$/)
# Before running the command, convert the -bd option into -bdf so that an
# Exim daemon doesn't double fork. This means that when we wait close
# Before running the command, convert the -bd option into -bdf so that an
# Exim daemon doesn't double fork. This means that when we wait close
- # DAEMONCMD, it waits for the correct process.
+ # DAEMONCMD, it waits for the correct process. Also, ensure that the pid
+ # file is written to the spool directory, in case the Exim binary was
+ # built with PID_FILE_PATH pointing somewhere else.
- $cmd =~ s
/\s-bd\s/ -bdf /
;
+ $cmd =~ s
!\s-bd\s! -bdf -oP $parm_cwd/spool/exim-daemon.pid !
;
print ">> |${cmd}-server\n" if ($debug);
open DAEMONCMD, "|${cmd}-server" || tests_exit(-1, "Failed to run $cmd");
DAEMONCMD->autoflush(1);
print ">> |${cmd}-server\n" if ($debug);
open DAEMONCMD, "|${cmd}-server" || tests_exit(-1, "Failed to run $cmd");
DAEMONCMD->autoflush(1);
@@
-2412,7
+2419,7
@@
print "IPv6 address is $parm_ipv6\n";
$parm_ipv4r = ($parm_ipv4 !~ /^\d/)? "" :
join(".", reverse(split /\./, $parm_ipv4));
$parm_ipv4r = ($parm_ipv4 !~ /^\d/)? "" :
join(".", reverse(split /\./, $parm_ipv4));
-$parm_ipv6r =
"";
+$parm_ipv6r =
$parm_ipv6; # Appropriate if not in use
if ($parm_ipv6 =~ /^[\da-f]/)
{
my(@comps) = split /:/, $parm_ipv6;
if ($parm_ipv6 =~ /^[\da-f]/)
{
my(@comps) = split /:/, $parm_ipv6;