From 00dd45720e64f29d06de249ca5cd70e93c6a6b68 Mon Sep 17 00:00:00 2001 From: Yang Tse Date: Fri, 1 Jun 2012 05:37:00 +0200 Subject: tests: support test definitions with up to 5 file checks in section This is done introducing tags to besides existing one, as well as corresponding to ones, that can be used in the section in the same way as the non-numbered ones. --- tests/runtests.pl | 80 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 41 insertions(+), 39 deletions(-) (limited to 'tests/runtests.pl') diff --git a/tests/runtests.pl b/tests/runtests.pl index a984e8cce..65dd9610b 100755 --- a/tests/runtests.pl +++ b/tests/runtests.pl @@ -3496,53 +3496,55 @@ sub singletest { $ok .= "-"; # protocol not checked } - my @outfile=getpart("verify", "file"); - if(@outfile) { - # we're supposed to verify a dynamically generated file! - my %hash = getpartattr("verify", "file"); - - my $filename=$hash{'name'}; - if(!$filename) { - logmsg "ERROR: section verify=>file has no name attribute\n"; - stopservers($verbose); - # timestamp test result verification end - $timevrfyend{$testnum} = Time::HiRes::time() if($timestats); - return -1; - } - my @generated=loadarray($filename); + my $outputok; + for my $partsuffix (('', '1', '2', '3', '4')) { + my @outfile=getpart("verify", "file".$partsuffix); + if(@outfile) { + # we're supposed to verify a dynamically generated file! + my %hash = getpartattr("verify", "file".$partsuffix); + + my $filename=$hash{'name'}; + if(!$filename) { + logmsg "ERROR: section verify=>file$partsuffix ". + "has no name attribute\n"; + stopservers($verbose); + # timestamp test result verification end + $timevrfyend{$testnum} = Time::HiRes::time() if($timestats); + return -1; + } + my @generated=loadarray($filename); - # what parts to cut off from the file - my @stripfile = getpart("verify", "stripfile"); + # what parts to cut off from the file + my @stripfile = getpart("verify", "stripfile".$partsuffix); - my $filemode=$hash{'mode'}; - if($filemode && ($filemode eq "text") && $has_textaware) { - # text mode when running on windows means adding an extra - # strip expression - push @stripfile, "s/\r\n/\n/"; - } + my $filemode=$hash{'mode'}; + if($filemode && ($filemode eq "text") && $has_textaware) { + # text mode when running on windows means adding an extra + # strip expression + push @stripfile, "s/\r\n/\n/"; + } - my $strip; - for $strip (@stripfile) { - chomp $strip; - for(@generated) { - eval $strip; + my $strip; + for $strip (@stripfile) { + chomp $strip; + for(@generated) { + eval $strip; + } } - } - @outfile = fixarray(@outfile); + @outfile = fixarray(@outfile); - $res = compare("output", \@generated, \@outfile); - if($res) { - # timestamp test result verification end - $timevrfyend{$testnum} = Time::HiRes::time() if($timestats); - return 1; - } + $res = compare("output ($filename)", \@generated, \@outfile); + if($res) { + # timestamp test result verification end + $timevrfyend{$testnum} = Time::HiRes::time() if($timestats); + return 1; + } - $ok .= "o"; - } - else { - $ok .= "-"; # output not checked + $outputok = 1; # output checked + } } + $ok .= ($outputok) ? "o" : "-"; # output checked or not # accept multiple comma-separated error codes my @splerr = split(/ *, */, $errorcode); -- cgit v1.2.3