#! /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.4 2006/02/10 16:29:20 ph10 Exp $
###############################################################################
# This is the controlling script for the "new" test suite for Exim. It should #
$have_ipv4 = 1;
$have_ipv6 = 1;
+$have_largefiles = 0;
$test_start = 1;
$test_end = $test_top = 8999;
# 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/;
+ s/failing_interval=\S+ message_age=\S+/failing_interval=ttt message_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;
# Maildirsize data
if (/^\d+S,\d+C\s*$/)
{
- print MUNGED "dddS,dC\n";
+ print MUNGED;
while (<IN>)
{
last if !/^\d+ \d+\s*$/;
/^Transports:/ ||
/^log selectors =/ ||
/^cwd=/ ||
- /^Fixed never_users:/
+ /^Fixed never_users:/ ||
+ /^Size of off_t:/
);
}
# Various Unix management commands are recognized
-if (/^(ln|ls|du|mkdir|mkfifo|touch|cp)\s/ ||
+if (/^(ln|ls|du|mkdir|mkfifo|touch|cp|cat)\s/ ||
/^sudo (rmdir|rm|chown|chmod)\s/)
{
run_system("$_ >>test-stdout 2>>test-stderr");
# 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/)
{
{
my(@temp);
- if (/^Exim version/) { print; next; }
+ if (/^Exim version/) { print; }
- if (/^Support for: (.*)/)
+ elsif (/^Size of off_t: (\d+)/)
+ {
+ $have_largefiles = 1 if $1 > 4;
+ }
+
+ elsif (/^Support for: (.*)/)
{
print;
@temp = split /(\s+)/, $1;
%parm_support = @temp;
}
- if (/^Lookups: (.*)/)
+ elsif (/^Lookups: (.*)/)
{
print;
@temp = split /(\s+)/, $1;
%parm_lookups = @temp;
}
- if (/^Authenticators: (.*)/)
+ elsif (/^Authenticators: (.*)/)
{
print;
@temp = split /(\s+)/, $1;
%parm_authenticators = @temp;
}
- if (/^Routers: (.*)/)
+ elsif (/^Routers: (.*)/)
{
print;
@temp = split /(\s+)/, $1;
# that the basic transport name is set, and then the name with each of the
# options.
- if (/^Transports: (.*)/)
+ elsif (/^Transports: (.*)/)
{
print;
@temp = split /(\s+)/, $1;
if (/^rmfiltertest/) { $rmfiltertest = 1; next; }
if (/^sortlog/) { $sortlog = 1; next; }
+ if (/^need_largefiles/)
+ {
+ next if $have_largefiles;
+ print ">>> Large file support is needed for test $testno, but is not available: skipping\n";
+ $docheck = 0; # don't check output
+ undef $_; # pretend EOF
+ last;
+ }
+
if (/^need_ipv4/)
{
next if $have_ipv4;