#! /usr/bin/perl -w
-# $Cambridge: exim/test/runtest,v 1.35 2010/06/05 01:58:39 jetmore Exp $
+# $Cambridge: exim/test/runtest,v 1.37 2010/06/14 20:30:12 jetmore Exp $
###############################################################################
# This is the controlling script for the "new" test suite for Exim. It should #
\d{4}-\d\d-\d\d\s\d\d:\d\d:\d\d/Exim statistics from <time> to <time>/x;
- # ======== Caller's login, uid, gid, home ========
+ # ======== Caller's login, uid, gid, home, gecos ========
s/\Q$parm_caller_home\E/CALLER_HOME/g; # NOTE: these must be done
s/\b\Q$parm_caller\E\b/CALLER/g; # in this order!
s/\buid=$parm_caller_uid\b/uid=CALLER_UID/g;
s/\bgid=$parm_caller_gid\b/gid=CALLER_GID/g;
+ s/\bname=$parm_caller_gecos\b/name=CALLER_GECOS/g;
+
# When looking at spool files with -Mvh, we will find not only the caller
# login, but also the uid and gid. It seems that $) in some Perls gives all
# the auxiliary gids as well, so don't bother checking for that.
# Find what is in the binary #
##################################################
-open(EXIMINFO, "$parm_exim -C confs/0000 -DDIR=$parm_cwd " .
+open(EXIMINFO, "$parm_exim -C $parm_cwd/confs/0000 -DDIR=$parm_cwd " .
"-bP exim_user exim_group|") ||
die "** Cannot run $parm_exim: $!\n";
while(<EXIMINFO>)
else { $parm_exim_gid = getgrnam($parm_eximgroup); }
}
-open(EXIMINFO, "$parm_exim -bV -C confs/0000 -DDIR=$parm_cwd |") ||
+open(EXIMINFO, "$parm_exim -bV -C $parm_cwd/confs/0000 -DDIR=$parm_cwd |") ||
die "** Cannot run $parm_exim: $!\n";
print "-" x 78, "\n";
elsif (/^Size of off_t: (\d+)/)
{
+ print;
$have_largefiles = 1 if $1 > 4;
+ die "** Size of off_t > 32 which seems improbable, not running tests\n"
+ if ($1 > 32);
}
elsif (/^Support for: (.*)/)
%parm_support = @temp;
}
- elsif (/^Lookups: (.*)/)
+ elsif (/^Lookups \(built-in\): (.*)/)
{
print;
@temp = split /(\s+)/, $1;
# Find the caller of this program.
($parm_caller,$pwpw,$parm_caller_uid,$parm_caller_gid,$pwquota,$pwcomm,
- $pwgecos, $parm_caller_home) = getpwuid($>);
+ $parm_caller_gecos, $parm_caller_home) = getpwuid($>);
$pwpw = $pwpw; # Kill Perl warnings
$pwquota = $pwquota;
$pwcomm = $pwcomm;
-$pwgecos = $pwgecos;
$parm_caller_group = getgrgid($parm_caller_gid);
print "Exim user is $parm_eximuser ($parm_exim_uid)\n";
print "Exim group is $parm_eximgroup ($parm_exim_gid)\n";
+
+if ($parm_caller_uid eq $parm_exim_uid) {
+ tests_exit(-1, "Exim user ($parm_eximuser,$parm_exim_uid) cannot be "
+ ."the same as caller ($parm_caller,$parm_caller_uid)");
+}
+
print "The Exim user needs access to the test suite directory. Checking ...";
if (($rc = system("sudo bin/checkaccess $parm_cwd/eximdir/exim $parm_eximuser $parm_eximgroup")) != 0)