summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/aux-fixed/setrt39
-rw-r--r--test/confs/052944
-rw-r--r--test/log/05295
-rwxr-xr-xtest/runtest12
-rw-r--r--test/scripts/0000-Basic/052910
-rw-r--r--test/stderr/03576
-rw-r--r--test/stderr/03588
-rw-r--r--test/stderr/03884
-rw-r--r--test/stderr/04761
-rw-r--r--test/stderr/052985
-rw-r--r--test/stderr/50058
11 files changed, 204 insertions, 18 deletions
diff --git a/test/aux-fixed/setrt b/test/aux-fixed/setrt
new file mode 100644
index 000000000..85046508e
--- /dev/null
+++ b/test/aux-fixed/setrt
@@ -0,0 +1,39 @@
+# This is a little perl script that adjusts the "received" time in a -H file,
+# so that retry timeouts etc can be more easily tested. Its arguments are:
+#
+# (1) The number of the message on the queue whose time is to be adjusted; 1
+# for the first message, 2 for the second, etc.
+#
+# (2) A positive or negative number by which to adjust the received time.
+
+$fileno = $ARGV[0] - 1;
+$adjust = $ARGV[1];
+
+opendir(DIR, "spool/input");
+while (($_ = readdir(DIR))) { push(@files, $_) if /.*-H$/; }
+closedir(DIR);
+
+@files = sort @files;
+
+open(IN, "spool/input/$files[$fileno]") ||
+ die "can't open spool/input/$files[$fileno]";
+
+open(OUT, ">test-H");
+
+$_ = <IN>; print OUT;
+$_ = <IN>; print OUT;
+$_ = <IN>; print OUT;
+$_ = <IN>;
+($rtime,$rest) = $_ =~ /^(\d+)(.*)/;
+$rtime += $adjust;
+print OUT "$rtime$rest\n";
+print OUT while (<IN>);
+
+close(IN);
+close(OUT);
+
+rename("test-H", "spool/input/$files[$fileno]") || die "rename failed\n";
+
+exit(0);
+
+# End
diff --git a/test/confs/0529 b/test/confs/0529
new file mode 100644
index 000000000..247f7452a
--- /dev/null
+++ b/test/confs/0529
@@ -0,0 +1,44 @@
+# Exim test configuration 0529
+
+exim_path = EXIM_PATH
+host_lookup_order = bydns
+primary_hostname = myhost.test.ex
+rfc1413_query_timeout = 0s
+spool_directory = DIR/spool
+log_file_path = DIR/spool/log/%slog
+gecos_pattern = ""
+gecos_name = CALLER_NAME
+
+# ----- Main settings -----
+
+
+
+# ----- Routers -----
+
+begin routers
+
+r1:
+ driver = redirect
+ data = DIR/test-mail/rmbox
+ file_transport = t1
+
+
+# ----- Transports -----
+
+begin transports
+
+t1:
+ driver = appendfile
+ quota = 1
+ user = CALLER
+
+
+# ----- Retry -----
+
+begin retry
+
+*@test.ex quota_7d
+*@test.ex quota F,2h,15m; F,3d,1h
+* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
+
+# End
diff --git a/test/log/0529 b/test/log/0529
new file mode 100644
index 000000000..2e56375ce
--- /dev/null
+++ b/test/log/0529
@@ -0,0 +1,5 @@
+1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmaX-0005vi-00 == TESTSUITE/test-mail/rmbox <x@test.ex> R=r1 T=t1 defer (-22): mailbox is full (MTA-imposed quota exceeded while writing to TESTSUITE/test-mail/rmbox)
+1999-03-02 09:44:33 Start queue run: pid=pppp
+1999-03-02 09:44:33 10HmaX-0005vi-00 == TESTSUITE/test-mail/rmbox <x@test.ex> R=r1 T=t1 defer (-52): Retry time not yet reached
+1999-03-02 09:44:33 End queue run: pid=pppp
diff --git a/test/runtest b/test/runtest
index 92bbe804f..acff149af 100755
--- a/test/runtest
+++ b/test/runtest
@@ -1,6 +1,6 @@
#! /usr/bin/perl -w
-# $Cambridge: exim/test/runtest,v 1.1 2006/02/06 16:07:10 ph10 Exp $
+# $Cambridge: exim/test/runtest,v 1.2 2006/02/08 14:28:51 ph10 Exp $
###############################################################################
# This is the controlling script for the "new" test suite for Exim. It should #
@@ -406,16 +406,17 @@ while(<IN>)
# Date/time in mbx mailbox files
s/\d\d-\w\w\w-\d\d\d\d\s\d\d:\d\d:\d\d\s[-+]\d\d\d\d,/06-Sep-1999 15:52:48 +0100,/gx;
- # Date/time in debugging output for writing retry records
+ # Dates/times in debugging output for writing retry records
if (/^ first failed=(\d+) last try=(\d+) next try=(\d+) (.*)$/)
{
my($next) = $3 - $2;
$_ = " first failed=dddd last try=dddd next try=+$next $4\n";
}
+ s/^now=\d+ received_time=\d+ diff=\d+ timeout=(\d+)/now=tttt received_time=tttt diff=tttt timeout=$1/;
# Time to retry may vary
- s/time to retry = -\d+/time to retry = -ddddd/;
- s/retry record exists: age=\d/retry record exists: age=d/;
+ s/time to retry = \S+/time to retry = tttt/;
+ s/retry record exists: age=\S+/retry record exists: age=ttt/;
# Date/time in exim -bV output
s/\d\d-[A-Z][a-z]{2}-\d{4}\s\d\d:\d\d:\d\d/07-Mar-2000 12:21:52/g;
@@ -1581,7 +1582,8 @@ if (/^(cat)?write\s+(\S+)(?:\s+(.*))?\s*$/)
# The "client" and "client-ssl" commands run a script-driven program that plays
# the part of an email client. We also have the availability of running Perl
-# for doing one-off special things.
+# for doing one-off special things. Note that all these commands expect stdin
+# data to be supplied.
if (/^client/ || /^client-ssl/ || /^(sudo\s+)?perl\b/)
{
diff --git a/test/scripts/0000-Basic/0529 b/test/scripts/0000-Basic/0529
new file mode 100644
index 000000000..3809cde3a
--- /dev/null
+++ b/test/scripts/0000-Basic/0529
@@ -0,0 +1,10 @@
+# retries for quota exceeded when routed to a file
+#
+exim -d-all+retry -odi x@test.ex
+****
+# Adjust the received time for the message, then try a queue run.
+sudo perl DIR/aux-fixed/setrt 1 -86400
+****
+exim -d-all+retry -q
+****
+no_msglog_check
diff --git a/test/stderr/0357 b/test/stderr/0357
index 74e375a70..3692e9574 100644
--- a/test/stderr/0357
+++ b/test/stderr/0357
@@ -36,7 +36,7 @@ Failed addresses:
Deferred addresses:
userx@test.ex
locking TESTSUITE/spool/db/retry.lockfile
-retry for R:userx@test.ex = *
+retry for R:userx@test.ex = * 0 0
Writing retry data for R:userx@test.ex
first failed=dddd last try=dddd next try=+1 expired=0
errno=-44 more_errno=dd,A SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
@@ -84,7 +84,7 @@ Deferred addresses:
userx@test.ex
locking TESTSUITE/spool/db/retry.lockfile
deleted retry information for R:test.ex
-retry for R:userx@test.ex = *
+retry for R:userx@test.ex = * 0 0
Writing retry data for R:userx@test.ex
first failed=dddd last try=dddd next try=+1 expired=0
errno=-44 more_errno=dd,A SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
@@ -133,7 +133,7 @@ Deferred addresses:
userx@test.ex
locking TESTSUITE/spool/db/retry.lockfile
deleted retry information for R:test.ex
-retry for R:userx@test.ex = *
+retry for R:userx@test.ex = * 0 0
Writing retry data for R:userx@test.ex
first failed=dddd last try=dddd next try=+2 expired=0
errno=-44 more_errno=dd,A SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
diff --git a/test/stderr/0358 b/test/stderr/0358
index 04029aea0..dd36d0267 100644
--- a/test/stderr/0358
+++ b/test/stderr/0358
@@ -46,12 +46,12 @@ Failed addresses:
Deferred addresses:
usery@test.ex
locking TESTSUITE/spool/db/retry.lockfile
-retry for R:usery@test.ex = *
+retry for R:usery@test.ex = * 0 0
Writing retry data for R:usery@test.ex
first failed=dddd last try=dddd next try=+1 expired=0
errno=-44 more_errno=dd,A SMTP error from remote mail server after RCPT TO:<usery@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
userx@test.ex
-retry for R:userx@test.ex = *
+retry for R:userx@test.ex = * 0 0
Writing retry data for R:userx@test.ex
first failed=dddd last try=dddd next try=+1 expired=0
errno=-44 more_errno=dd,A SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
@@ -116,13 +116,13 @@ Deferred addresses:
usery@test.ex
locking TESTSUITE/spool/db/retry.lockfile
deleted retry information for R:test.ex
-retry for R:usery@test.ex = *
+retry for R:usery@test.ex = * 0 0
Writing retry data for R:usery@test.ex
first failed=dddd last try=dddd next try=+2 expired=0
errno=-44 more_errno=dd,A SMTP error from remote mail server after RCPT TO:<usery@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
userx@test.ex
deleted retry information for R:test.ex
-retry for R:userx@test.ex = *
+retry for R:userx@test.ex = * 0 0
Writing retry data for R:userx@test.ex
first failed=dddd last try=dddd next try=+2 expired=0
errno=-44 more_errno=dd,A SMTP error from remote mail server after RCPT TO:<userx@test.ex>: host 127.0.0.1 [127.0.0.1]: 451 Temporary error
diff --git a/test/stderr/0388 b/test/stderr/0388
index 38da06423..fcb73193a 100644
--- a/test/stderr/0388
+++ b/test/stderr/0388
@@ -143,7 +143,7 @@ opened hints database TESTSUITE/spool/db/retry: flags=O_RDWR
address match: subject=x@y pattern=*
y in "*"? yes (matched "*")
x@y in "*"? yes (matched "*")
-retry for R:x@y = *
+retry for R:x@y = * 0 0
dbfn_read: key=R:x@y
on queue longer than maximum retry
Writing retry data for R:x@y
@@ -153,7 +153,7 @@ dbfn_write: key=R:x@y
address match: subject=*@V4NET.0.0.0 pattern=*
V4NET.0.0.0 in "*"? yes (matched "*")
*@V4NET.0.0.0 in "*"? yes (matched "*")
-retry for T:V4NET.0.0.0:V4NET.0.0.0:1224 (y) = *
+retry for T:V4NET.0.0.0:V4NET.0.0.0:1224 (y) = * 0 0
dbfn_read: key=T:V4NET.0.0.0:V4NET.0.0.0:1224
on queue longer than maximum retry
Writing retry data for T:V4NET.0.0.0:V4NET.0.0.0:1224
diff --git a/test/stderr/0476 b/test/stderr/0476
index 3eb97ae30..c58e72060 100644
--- a/test/stderr/0476
+++ b/test/stderr/0476
@@ -96,6 +96,7 @@ t1 transport entered
checking status of 127.0.0.1
no message retry record
host retry time not reached: checking ultimate address timeout
+now=tttt received_time=tttt diff=tttt timeout=86400
127.0.0.1 [127.0.0.1]:1111 status = unusable
all IP addresses skipped or deferred at least one address
Leaving t1 transport
diff --git a/test/stderr/0529 b/test/stderr/0529
new file mode 100644
index 000000000..bed589de6
--- /dev/null
+++ b/test/stderr/0529
@@ -0,0 +1,85 @@
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+admin user
+LOG: MAIN
+ <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+created log directory TESTSUITE/spool/log
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+locking TESTSUITE/spool/db/retry.lockfile
+no retry data available
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering: x@test.ex
+no domain retry record
+no address retry record
+locking TESTSUITE/spool/db/retry.lockfile
+no retry data available
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering: TESTSUITE/test-mail/rmbox
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+After routing:
+ Local deliveries:
+ TESTSUITE/test-mail/rmbox
+ Remote deliveries:
+ Failed addresses:
+ Deferred addresses:
+locking TESTSUITE/spool/db/retry.lockfile
+no retry data available
+added retry item for T:TESTSUITE/test-mail/rmbox:x@test.ex: errno=-22 more_errno=dd flags=0
+LOG: MAIN
+ == TESTSUITE/test-mail/rmbox <x@test.ex> R=r1 T=t1 defer (-22): mailbox is full (MTA-imposed quota exceeded while writing to TESTSUITE/test-mail/rmbox)
+Processing retry items
+Succeeded addresses:
+x@test.ex: no retry items
+Failed addresses:
+Deferred addresses:
+TESTSUITE/test-mail/rmbox
+locking TESTSUITE/spool/db/retry.lockfile
+retry for T:TESTSUITE/test-mail/rmbox:x@test.ex = *@test.ex -22 0
+Writing retry data for T:TESTSUITE/test-mail/rmbox:x@test.ex
+ first failed=dddd last try=dddd next try=+900 expired=0
+ errno=-22 more_errno=dd mailbox is full (MTA-imposed quota exceeded while writing to TESTSUITE/test-mail/rmbox)
+x@test.ex: no retry items
+end of retry processing
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+admin user
+LOG: queue_run MAIN
+ Start queue run: pid=pppp
+locking TESTSUITE/spool/db/retry.lockfile
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering: x@test.ex
+no domain retry record
+no address retry record
+locking TESTSUITE/spool/db/retry.lockfile
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering: TESTSUITE/test-mail/rmbox
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+After routing:
+ Local deliveries:
+ TESTSUITE/test-mail/rmbox
+ Remote deliveries:
+ Failed addresses:
+ Deferred addresses:
+locking TESTSUITE/spool/db/retry.lockfile
+retry record exists: age=ttt (max 1w)
+ time to retry = tttt expired = 0
+retry time not reached for TESTSUITE/test-mail/rmbox: checking ultimate address timeout
+now=tttt received_time=tttt diff=tttt timeout=259200
+LOG: retry_defer MAIN
+ == TESTSUITE/test-mail/rmbox <x@test.ex> R=r1 T=t1 defer (-52): Retry time not yet reached
+Processing retry items
+Succeeded addresses:
+x@test.ex: no retry items
+Failed addresses:
+Deferred addresses:
+TESTSUITE/test-mail/rmbox: no retry items
+x@test.ex: no retry items
+end of retry processing
+LOG: queue_run MAIN
+ End queue run: pid=pppp
+>>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
diff --git a/test/stderr/5005 b/test/stderr/5005
index 993892dbd..8a8c8ad3b 100644
--- a/test/stderr/5005
+++ b/test/stderr/5005
@@ -484,7 +484,7 @@ opened hints database TESTSUITE/spool/db/retry: flags=O_RDWR
address match: subject=userx@test.ex pattern=*
test.ex in "*"? yes (matched "*")
userx@test.ex in "*"? yes (matched "*")
-retry for T:userx@test.ex = *
+retry for T:userx@test.ex = * 0 0
dbfn_read: key=T:userx@test.ex
Writing retry data for T:userx@test.ex
first failed=dddd last try=dddd next try=+86400 expired=0
@@ -600,8 +600,8 @@ EXIM_DBOPEN(TESTSUITE/spool/db/retry)
returned from EXIM_DBOPEN
opened hints database TESTSUITE/spool/db/retry: flags=O_RDONLY
dbfn_read: key=T:userx@test.ex
-retry record exists: age=d (max=604800)
- time to retry = -ddddd expired = 0
+retry record exists: age=ttt (max 1w)
+ time to retry = tttt expired = 0
search_tidyup called
changed uid/gid: local delivery to userx <userx@test.ex> transport=t1
uid=CALLER_UID gid=CALLER_GID pid=pppp
@@ -650,7 +650,7 @@ opened hints database TESTSUITE/spool/db/retry: flags=O_RDWR
address match: subject=userx@test.ex pattern=*
test.ex in "*"? yes (matched "*")
userx@test.ex in "*"? yes (matched "*")
-retry for T:userx@test.ex = *
+retry for T:userx@test.ex = * 0 0
dbfn_read: key=T:userx@test.ex
Writing retry data for T:userx@test.ex
first failed=dddd last try=dddd next try=+86400 expired=0