X-Git-Url: https://git.exim.org/users/heiko/exim.git/blobdiff_plain/f3d7df6c6b103bd096bfc455e88d79c8f6c3195b..5dff5817bb92191e4fd5f9d36fe20b1fec6c9969:/test/runtest diff --git a/test/runtest b/test/runtest index 76cc4b99b..37b6fbed4 100755 --- a/test/runtest +++ b/test/runtest @@ -1,6 +1,6 @@ #! /usr/bin/perl -w -# $Cambridge: exim/test/runtest,v 1.6 2006/03/17 16:51:45 ph10 Exp $ +# $Cambridge: exim/test/runtest,v 1.12 2006/07/04 09:07:20 ph10 Exp $ ############################################################################### # This is the controlling script for the "new" test suite for Exim. It should # @@ -23,7 +23,7 @@ use Socket; # Start by initializing some global variables -$testversion = "4.61 (06-Feb-06)"; +$testversion = "4.62 (20-Apr-06)"; $cf = "bin/cf"; $cr = "\r"; @@ -413,7 +413,8 @@ while() my($next) = $3 - $2; $_ = " first failed=dddd last try=dddd next try=+$next $4\n"; } - s/^now=\d+ received_time=\d+ diff=\d+ timeout=(\d+)/now=tttt received_time=tttt diff=tttt timeout=$1/; + s/^(\s*)now=\d+ first_failed=\d+ next_try=\d+ expired=(\d)/$1now=tttt first_failed=tttt next_try=tttt expired=$2/; + s/^(\s*)received_time=\d+ diff=\d+ timeout=(\d+)/$1received_time=tttt diff=tttt timeout=$2/; # Time to retry may vary s/time to retry = \S+/time to retry = tttt/; @@ -526,6 +527,8 @@ while() 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/\b\Q$parm_ipv4r\E\b/ip4-reverse/g; + s/\b\Q$parm_ipv6r\E\b/ip6-reverse/g; # ======== Test network IP addresses ======== @@ -613,7 +616,7 @@ while() s/\b\d+\.H\d+P\d+\b/dddddddddd.HddddddPddddd/; # Maildirsize data - if (/^\d+S,\d+C\s*$/) + while (/^\d+S,\d+C\s*$/) { print MUNGED; while () @@ -623,6 +626,7 @@ while() } last if !defined $_; } + last if !defined $_; # ======== Output from the "fd" program about open descriptors ======== @@ -855,7 +859,7 @@ my($rf,$rsf,$mf,$sf,$sortfile) = @_; if (! -e $sf) { - return 0 if (! -s $rf && ! -s $rsf); + return 0 if (! -s $rf && (! defined $rsf || ! -s $rsf)); print "\n"; print "** $rf is not empty\n" if (-s $rf); @@ -2403,6 +2407,24 @@ else print "IPv4 address is $parm_ipv4\n"; print "IPv6 address is $parm_ipv6\n"; +# For munging test output, we need the reversed IP addresses. + +$parm_ipv4r = ($parm_ipv4 !~ /^\d/)? "" : + join(".", reverse(split /\./, $parm_ipv4)); + +$parm_ipv6r = ""; +if ($parm_ipv6 =~ /^[\da-f]/) + { + my(@comps) = split /:/, $parm_ipv6; + my(@nibbles); + foreach $comp (@comps) + { + push @nibbles, sprintf("%lx", hex($comp) >> 8); + push @nibbles, sprintf("%lx", hex($comp) & 0xff); + } + $parm_ipv6r = join(".", reverse(@nibbles)); + } + # Find the host name, fully qualified. chomp($temp = `hostname`); @@ -2558,12 +2580,25 @@ opendir(DIR, "scripts") || tests_exit(-1, "Failed to opendir(\"scripts\"): $!"); @test_dirs = sort readdir(DIR); closedir(DIR); +# Remove . and .. and CVS from the list. + +for ($i = 0; $i < @test_dirs; $i++) + { + my($d) = $test_dirs[$i]; + if ($d eq "." || $d eq ".." || $d eq "CVS") + { + splice @test_dirs, $i, 1; + $i--; + } + } + +# Scan for relevant tests + for ($i = 0; $i < @test_dirs; $i++) { my($testdir) = $test_dirs[$i]; my($wantthis) = 1; - next if $testdir eq "." || $testdir eq ".."; print ">>Checking $testdir\n" if $debug; # Skip this directory if the first test is equal or greater than the first