X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/4ad401fb8100d20185c99aa00493e8bb49a53e45..1bad4ba467f200ec1629bcd83cdaf76be5c1fe26:/test/runtest diff --git a/test/runtest b/test/runtest index 324049fc0..31aaaa902 100755 --- a/test/runtest +++ b/test/runtest @@ -1,7 +1,5 @@ #! /usr/bin/perl -w -# $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 # # be possible to export this suite for running on a wide variety of hosts, in # @@ -313,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}) @@ -561,9 +560,9 @@ RESET_AFTER_EXTRA_LINE_READ: s/host\s\Q$parm_ipv4\E\s\[\Q$parm_ipv4\E\]/host ipv4.ipv4.ipv4.ipv4 [ipv4.ipv4.ipv4.ipv4]/; s/host\s\Q$parm_ipv6\E\s\[\Q$parm_ipv6\E\]/host ip6:ip6:ip6:ip6:ip6:ip6:ip6:ip6 [ip6:ip6:ip6:ip6:ip6:ip6:ip6:ip6]/; s/\b\Q$parm_ipv4\E\b/ip4.ip4.ip4.ip4/g; - s/\b\Q$parm_ipv6\E\b/ip6:ip6:ip6:ip6:ip6:ip6:ip6:ip6/g; + s/(^|\W)\K\Q$parm_ipv6\E/ip6:ip6:ip6:ip6:ip6:ip6:ip6:ip6/g; s/\b\Q$parm_ipv4r\E\b/ip4-reverse/g; - s/\b\Q$parm_ipv6r\E\b/ip6-reverse/g; + s/(^|\W)\K\Q$parm_ipv6r\E/ip6-reverse/g; s/^(\s+host\s\S+\s+\[\S+\]) +$/$1 /; @@ -594,7 +593,12 @@ RESET_AFTER_EXTRA_LINE_READ: # ======== Output from ls ======== # Different operating systems use different spacing on long output - s/ +/ /g if /^[-rwd]{10} /; + #s/ +/ /g if /^[-rwd]{10} /; + # (Bug 1226) SUSv3 allows a trailing printable char for modified access method control. + # Handle only the Gnu and MacOS space, dot, plus and at-sign. A full [[:graph:]] + # unfortunately matches a non-ls linefull of dashes. + # Allow the case where we've already picked out the file protection bits. + s/^([-d](?:[-r][-w][-SsTtx]){3})[.+@]?( +|$)/\1 /; # ======== Message sizes ========= @@ -683,6 +687,12 @@ RESET_AFTER_EXTRA_LINE_READ: s/^\d\d\d(?=[PFS*])/ddd/; + # ========= Exim lookups ================== + # Lookups have a char which depends on the number of lookup types compiled in, + # in stderr output. Replace with a "0". Recognising this while avoiding + # other output is fragile; perhaps the debug output should be revised instead. + s%(?) @@ -2046,6 +2074,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) { @@ -2053,7 +2088,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"; @@ -2130,6 +2165,7 @@ while () close(EXIMINFO); print "-" x 78, "\n"; +unlink("$parm_cwd/test-config"); ################################################## # Check for SpamAssassin and ClamAV # @@ -2411,6 +2447,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/) @@ -3228,4 +3270,4 @@ tests_exit(-1, "No runnable tests selected") if @test_list == 0; tests_exit(0); # End of runtest script - +# vim: set sw=2 :