X-Git-Url: https://git.exim.org/users/heiko/exim.git/blobdiff_plain/c562fd30c03126dd72d76ec43842d9d00fcd8bf3..0b56b50791f84fca479ad9bb9b0ce789959e3a2e:/test/runtest diff --git a/test/runtest b/test/runtest index 421e0b380..7a2c020b5 100755 --- a/test/runtest +++ b/test/runtest @@ -485,7 +485,7 @@ RESET_AFTER_EXTRA_LINE_READ: s/\d\d-[A-Z][a-z]{2}-\d{4}\s\d\d:\d\d:\d\d/07-Mar-2000 12:21:52/g; # Time on queue tolerance - s/QT=1s/QT=0s/; + s/(QT|D)=1s/$1=0s/; # Eximstats heading s/Exim\sstatistics\sfrom\s\d{4}-\d\d-\d\d\s\d\d:\d\d:\d\d\sto\s @@ -806,7 +806,7 @@ RESET_AFTER_EXTRA_LINE_READ: # ========================================================== # MIME boundaries in RFC3461 DSN messages - s/\d{8,10}-eximdsn-\d{8,10}/NNNNNNNNNN-eximdsn-MMMMMMMMMM/; + s/\d{8,10}-eximdsn-\d+/NNNNNNNNNN-eximdsn-MMMMMMMMMM/; # ========================================================== # Some munging is specific to the specific file types @@ -896,7 +896,7 @@ RESET_AFTER_EXTRA_LINE_READ: # As of Exim 4.74, we log when a setgid fails; because we invoke Exim # with -be, privileges will have been dropped, so this will always # be the case - next if /^changing group to \d+ failed: Operation not permitted/; + next if /^changing group to \d+ failed: (Operation not permitted|Not owner)/; # We might not keep this check; rather than change all the tests, just # ignore it as long as it succeeds; then we only need to change the @@ -1029,6 +1029,14 @@ RESET_AFTER_EXTRA_LINE_READ: next; } + # ======== log ======== + + elsif ($is_log) + { + # Berkeley DB version differences + next if / Berkeley DB error: /; + } + # ======== All files other than stderr ======== print MUNGED; @@ -1290,19 +1298,29 @@ return 1; # paniclog, rejectlog, mainlog, stdout, stderr, msglog, mail # Search strings starting with 's' do substitutions; # with '/' do line-skips. +# Triggered by a scriptfile line "munge " ################################################## $munges = { 'dnssec' => - { 'stderr' => '/^Reverse DNS security status: unverified\n/', }, + { 'stderr' => '/^Reverse DNS security status: unverified\n/' }, 'gnutls_unexpected' => - { 'mainlog' => '/\(recv\): A TLS packet with unexpected length was received./', }, + { 'mainlog' => '/\(recv\): A TLS packet with unexpected length was received./' }, 'gnutls_handshake' => - { 'mainlog' => 's/\(gnutls_handshake\): Error in the push function/\(gnutls_handshake\): A TLS packet with unexpected length was received/', }, + { 'mainlog' => 's/\(gnutls_handshake\): Error in the push function/\(gnutls_handshake\): A TLS packet with unexpected length was received/' }, + + 'optional_events' => + { 'stdout' => '/event_action =/' }, + + 'optional_ocsp' => + { 'stderr' => '/127.0.0.1 in hosts_requ(ire|est)_ocsp/' }, - 'tpda' => - { 'stdout' => '/tpda_event_action =/', }, + 'no_tpt_filter_epipe' => + { 'stderr' => '/^writing error 32: Broken pipe$/' }, + + 'optional_cert_hostnames' => + { 'stderr' => '/in tls_verify_cert_hostnames\? no/' }, }; @@ -1648,19 +1666,42 @@ if (/^dump\s+(\S+)/) my(@temp); print ">> ./eximdir/exim_dumpdb $parm_cwd/spool $which\n" if $debug; open(IN, "./eximdir/exim_dumpdb $parm_cwd/spool $which |"); - @temp = ; - close(IN); - if ($which eq "callout") + open(OUT, ">>test-stdout"); + print OUT "+++++++++++++++++++++++++++\n"; + + if ($which eq "retry") { + $/ = "\n "; + @temp = ; + $/ = "\n"; + @temp = sort { - my($aa) = substr $a, 21; - my($bb) = substr $b, 21; - return $aa cmp $bb; + my($aa) = split(' ', $a); + my($bb) = split(' ', $b); + return $aa cmp $bb; } @temp; + + foreach $item (@temp) + { + $item =~ s/^\s*(.*)\n(.*)\n?\s*$/\1\n\2/m; + print OUT " $item\n"; + } } - open(OUT, ">>test-stdout"); - print OUT "+++++++++++++++++++++++++++\n"; - print OUT @temp; + else + { + @temp = ; + if ($which eq "callout") + { + @temp = sort { + my($aa) = substr $a, 21; + my($bb) = substr $b, 21; + return $aa cmp $bb; + } @temp; + } + print OUT @temp; + } + + close(IN); close(OUT); return 1; } @@ -2010,7 +2051,8 @@ elsif (/^([A-Z_]+=\S+\s+)?(\d+)?\s*(sudo\s+)?exim(_\S+)?\s+(.*)$/) for ($i = @msglist; $i > 0; $i--) { $args =~ s/\$msg$i/$msglist[$i-1]/g; } if ( $args =~ /\$msg\d/ ) { - tests_exit(-1, "Not enough messages in spool, for test $testno line $lineno\n"); + tests_exit(-1, "Not enough messages in spool, for test $testno line $lineno\n") + unless $force_continue; } } @@ -2723,7 +2765,7 @@ $pwcomm = $pwcomm; $parm_caller_group = getgrgid($parm_caller_gid); -print "Program caller is $parm_caller, whose group is $parm_caller_group\n"; +print "Program caller is $parm_caller ($parm_caller_uid), whose group is $parm_caller_group ($parm_caller_gid)\n"; print "Home directory is $parm_caller_home\n"; unless (defined $parm_eximgroup)