X-Git-Url: https://git.exim.org/users/heiko/exim.git/blobdiff_plain/0886a95e57e47c507ad3a52e3c9d3581ee7b6ddc..a0839bccad7eb451b0a2322b64488d5e2c37f269:/test/runtest?ds=sidebyside diff --git a/test/runtest b/test/runtest index fcc7a972e..3b0c6bbf0 100755 --- a/test/runtest +++ b/test/runtest @@ -680,7 +680,6 @@ RESET_AFTER_EXTRA_LINE_READ: s/^\s+host\s(\S+)\s+(\S+)/ host $1 $2/; s/^\s+(host\s\S+\s\S+)\s+(port=.*)/ host $1 $2/; s/^\s+(host\s\S+\s\S+)\s+(?=MX=)/ $1 /; - s/^\s+host\s.*?\K\s+(ad=\S+)/ $1/; 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; @@ -953,7 +952,7 @@ RESET_AFTER_EXTRA_LINE_READ: # are unset, because tls ain't always there. next if /in\s(?:tls_advertise_hosts\?|hosts_require_tls\?) - \sno\s\(option\sunset\)/x; + \sno\s\((option\sunset|end\sof\slist)\)/x; # Skip auxiliary group lists because they will vary. @@ -1363,9 +1362,6 @@ $munges = 'optional_ocsp' => { 'stderr' => '/127.0.0.1 in hosts_requ(ire|est)_ocsp/' }, - 'no_tpt_filter_epipe' => - { 'stderr' => '/^writing error 32: Broken pipe$/' }, - 'optional_cert_hostnames' => { 'stderr' => '/in tls_verify_cert_hostnames\? no/' }, @@ -1384,6 +1380,13 @@ $munges = 'debug_pid' => { 'stderr' => 's/(^\s{0,4}|(?<=Process )|(?<=child ))\d{1,5}/ppppp/g' }, + 'optional_dsn_info' => + { 'mail' => '/^(X-(Remote-MTA-(smtp-greeting|helo-response)|Exim-Diagnostic|(body|message)-linecount):|Remote-MTA: X-ip;)/' + }, + + 'sys_bindir' => + { 'mainlog' => 's%/(usr/)?bin/%SYSBINDIR/%' }, + }; @@ -2062,12 +2065,12 @@ if (/^client/ || /^(sudo\s+)?perl\b/) # not drop privilege when -C and -D options are present. To run the exim # command as root, we use sudo. -elsif (/^([A-Z_]+=\S+\s+)?(\d+)?\s*(sudo\s+)?exim(_\S+)?\s+(.*)$/) +elsif (/^([A-Z_]+=\S+\s+)?(\d+)?\s*(sudo(?:\s+-u\s+(\w+))?\s+)?exim(_\S+)?\s+(.*)$/) { - $args = $5; + $args = $6; my($envset) = (defined $1)? $1 : ""; - my($sudo) = (defined $3)? "sudo " : ""; - my($special)= (defined $4)? $4 : ""; + my($sudo) = (defined $3)? "sudo " . (defined $4 ? "-u $4 ":"") : ""; + my($special)= (defined $5)? $5 : ""; $wait_time = (defined $2)? $2 : 0; # Return 2 rather than 1 afterwards @@ -2127,7 +2130,6 @@ elsif (/^([A-Z_]+=\S+\s+)?(\d+)?\s*(sudo\s+)?exim(_\S+)?\s+(.*)$/) "-DEXIM_PATH=$parm_cwd/eximdir/exim$special " . "-C $parm_cwd/test-config $args " . ">>test-stdout 2>>test-stderr"; - # If the command is starting an Exim daemon, we run it in the same # way as the "server" command above, that is, we don't want to wait # for the process to finish. That happens when "killdaemon" is obeyed later @@ -2393,7 +2395,7 @@ if ($parm_exim eq "") # directory. Thus, we should choose the highest version of Exim that has # been compiled. - if ($f eq "exim4" || $f eq "exim-snapshot") + if ($f eq "exim4" || $f eq "exim-snapshot" || $f eq 'src') { $srcdir = $f; } else { $srcdir = $f @@ -2459,8 +2461,13 @@ if ($parm_exim eq "") # 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"; +open (IN, "$parm_cwd/confs/0000") || + tests_exit(-1, "Couldn't open $parm_cwd/confs/0000: $!\n"); +open (OUT, ">test-config") || + tests_exit(-1, "Couldn't open test-config: $!\n"); +while () { print OUT; } +close(IN); +close(OUT); print("Probing with config file: $parm_cwd/test-config\n"); open(EXIMINFO, "$parm_exim -d -C $parm_cwd/test-config -DDIR=$parm_cwd " . @@ -3739,6 +3746,7 @@ $0 = "[runtest $testno]"; # The script has finished. Check the all the output that was generated. The # function returns 0 if all is well, 1 if we should rerun the test (the files + # function returns 0 if all is well, 1 if we should rerun the test (the files # have been updated). It does not return if the user responds Q to a prompt. if ($retry)