X-Git-Url: https://git.exim.org/users/heiko/exim.git/blobdiff_plain/3634fc257bd0667daef14d72005cd87c735bbb24..650ececb91dcf4567d31b0f960d75becf798f9df:/test/runtest?ds=inline diff --git a/test/runtest b/test/runtest index 0cc7b05fe..4543915b0 100755 --- a/test/runtest +++ b/test/runtest @@ -311,7 +311,8 @@ RESET_AFTER_EXTRA_LINE_READ: s?\Q$parm_cwd\E?TESTSUITE?g; # Replace the Exim version number (may appear in various places) - s/Exim \d+\.\d+[\w-]*/Exim x.yz/i; + # patchexim should have fixed this for us + #s/(Exim) \d+\.\d+[\w_-]*/$1 x.yz/i; # Replace Exim message ids by a unique series s/((?:[^\W_]{6}-){2}[^\W_]{2}) @@ -738,6 +739,8 @@ RESET_AFTER_EXTRA_LINE_READ: # drop lookups next if /^Lookups \(built-in\):/; + next if /^Loading lookup modules from/; + next if /^Loaded \d+ lookup modules/; next if /^Total \d+ lookups/; # drop compiler information @@ -1861,6 +1864,13 @@ autoflush STDOUT 1; print "Exim tester $testversion\n"; +################################################## +# Some tests check created file modes # +################################################## + +umask 022; + + ################################################## # Check for the "less" command # ################################################## @@ -2032,7 +2042,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() @@ -2047,6 +2063,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 +2077,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 +2154,7 @@ while () close(EXIMINFO); print "-" x 78, "\n"; +unlink("$parm_cwd/test-config"); ################################################## # Check for SpamAssassin and ClamAV # @@ -2412,6 +2436,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 +3259,4 @@ tests_exit(-1, "No runnable tests selected") if @test_list == 0; tests_exit(0); # End of runtest script - +# vim: set sw=2 :