Gitweb:
http://git.exim.org/exim.git/commitdiff/5f122889caaa3746001f7e1f8e5caca6f6181393
Commit: 5f122889caaa3746001f7e1f8e5caca6f6181393
Parent: b5eb014fe1c11eb3608d14a21181f245161416ae
Author: Phil Pennock <pdp@???>
AuthorDate: Sun Oct 9 20:34:40 2011 -0400
Committer: Phil Pennock <pdp@???>
CommitDate: Sun Oct 9 20:34:40 2011 -0400
Make runtest more resilient to setup problems
---
test/runtest | 26 +++++++++++++++++++++++---
1 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/test/runtest b/test/runtest
index 0cc7b05..4f1d18e 100755
--- a/test/runtest
+++ b/test/runtest
@@ -2032,7 +2032,13 @@ if ($parm_exim eq "")
# Find what is in the binary #
##################################################
-open(EXIMINFO, "$parm_exim -C $parm_cwd/confs/0000 -DDIR=$parm_cwd " .
+# deal with TRUSTED_CONFIG_LIST restrictions
+unlink("$parm_cwd/test-config") if -e "$parm_cwd/test-config";
+symlink("$parm_cwd/confs/0000", "$parm_cwd/test-config")
+ or die "Unable to link initial config into place: $!\n";
+
+print("Probing with config file: $parm_cwd/test-config\n");
+open(EXIMINFO, "$parm_exim -d -C $parm_cwd/test-config -DDIR=$parm_cwd " .
"-bP exim_user exim_group|") ||
die "** Cannot run $parm_exim: $!\n";
while(<EXIMINFO>)
@@ -2047,6 +2053,13 @@ if (defined $parm_eximuser)
if ($parm_eximuser =~ /^\d+$/) { $parm_exim_uid = $parm_eximuser; }
else { $parm_exim_uid = getpwnam($parm_eximuser); }
}
+else
+ {
+ print "Unable to extract exim_user from binary.\n";
+ print "Check if Exim refused to run; if so, consider:\n";
+ print " TRUSTED_CONFIG_LIST ALT_CONFIG_PREFIX WHITELIST_D_MACROS\n";
+ die "Failing to get information from binary.\n";
+ }
if (defined $parm_eximgroup)
{
@@ -2054,7 +2067,7 @@ if (defined $parm_eximgroup)
else { $parm_exim_gid = getgrnam($parm_eximgroup); }
}
-open(EXIMINFO, "$parm_exim -bV -C $parm_cwd/confs/0000 -DDIR=$parm_cwd |") ||
+open(EXIMINFO, "$parm_exim -bV -C $parm_cwd/test-config -DDIR=$parm_cwd |") ||
die "** Cannot run $parm_exim: $!\n";
print "-" x 78, "\n";
@@ -2131,6 +2144,7 @@ while (<EXIMINFO>)
close(EXIMINFO);
print "-" x 78, "\n";
+unlink("$parm_cwd/test-config");
##################################################
# Check for SpamAssassin and ClamAV #
@@ -2412,6 +2426,12 @@ $parm_caller_group = getgrgid($parm_caller_gid);
print "Program caller is $parm_caller, whose group is $parm_caller_group\n";
print "Home directory is $parm_caller_home\n";
+unless (defined $parm_eximgroup)
+ {
+ print "Unable to derive \$parm_eximgroup.\n";
+ die "** ABANDONING.\n";
+ }
+
print "You need to be in the Exim group to run these tests. Checking ...";
if (`groups` =~ /\b\Q$parm_eximgroup\E\b/)
@@ -3229,4 +3249,4 @@ tests_exit(-1, "No runnable tests selected") if @test_list == 0;
tests_exit(0);
# End of runtest script
-
+# vim: set sw=2 :