X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/f5759daf16a28e5b395849b2ce4762f3bb46d3ce..fa1c8faf169384bebaa8d172f491574c45ae2aa4:/test/runtest diff --git a/test/runtest b/test/runtest index 204e09e76..24f80d3a4 100755 --- a/test/runtest +++ b/test/runtest @@ -18,7 +18,6 @@ #use strict; use v5.10.1; use warnings; -use if $^V >= v5.19.11, experimental => 'smartmatch'; use Errno; use FileHandle; @@ -856,7 +855,7 @@ RESET_AFTER_EXTRA_LINE_READ: s/(?:Can(?:no|')t assign requested address|Address not available)/Netwk addr not available/; s/Operation timed out/Connection timed out/; s/Address family not supported by protocol family/Network Error/; - s/Network is unreachable/Network unreachable/; + s/Network(?: is)? unreachable/Network Error/; s/Invalid argument/Network Error/; s/\(\d+\): Network/(dd): Network/; @@ -1075,6 +1074,15 @@ RESET_AFTER_EXTRA_LINE_READ: # mailq times change with when the run is done, vs. static-source spoolfiles s/\s*\d*[hd](?= 317 [0-9A-Za-z\-]{23} )/DDd/; + + # Not all builds include EXPERIMENTAL_DSN_INFO (1 of 2) + if (/^X-Exim-Diagnostic:/) + { + while () { + last if (/^$/ || !/^\s/); + } + goto RESET_AFTER_EXTRA_LINE_READ; + } } # ======== stderr ======== @@ -1631,6 +1639,15 @@ RESET_AFTER_EXTRA_LINE_READ: ; ; } + + # Not all builds include EXPERIMENTAL_DSN_INFO (2 of 2) + if (/^X-Exim-Diagnostic:/) + { + while () { + last if (/^$/ || !/^\s/); + } + goto RESET_AFTER_EXTRA_LINE_READ; + } } # ======== All files other than stderr ======== @@ -2305,6 +2322,7 @@ system($cmd); # Arguments: the current test number # reference to the subtest number, holding previous value # reference to the expected return code value +# reference to flag for not-expected return value # reference to where to put the command name (for messages) # auxiliary information returned from a previous run # @@ -2320,17 +2338,18 @@ system($cmd); sub run_command{ my($testno) = $_[0]; my($subtestref) = $_[1]; -my($commandnameref) = $_[3]; -my($aux_info) = $_[4]; +my($commandnameref) = $_[4]; +my($aux_info) = $_[5]; my($yield) = 1; our %ENV = map { $_ => $ENV{$_} } grep { /^(?:USER|SHELL|PATH|TERM|EXIM_TEST_.*)$/ } keys %ENV; -if (/^(\d+)\s*(?:([A-Z]+)=(\S+))?$/) # Handle unusual return code +if (/^(~)?(\d+)\s*(?:([A-Z]+)=(\S+))?$/) # Handle unusual return code { - my($r) = $_[2]; - $$r = $1 << 8; - $ENV{$2} = $3 if (defined $2); + my($r, $rn) = ($_[2], $_[3]); + $$r = $2 << 8; + $$rn = 1 if (defined $1); + $ENV{$3} = $4 if (defined $3); $_ =