From a9ebd1bddc5c548341bcbb6848dfaebaef69627d Mon Sep 17 00:00:00 2001 From: Marc Hoersken Date: Sat, 26 Dec 2015 10:59:22 +0100 Subject: [PATCH] runtests.pl: check up to 5 data parts with different text modes Move the text-mode conversion for reply/replycheck from the verify section into the load section and add support for 4 more check parts. --- tests/runtests.pl | 46 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/tests/runtests.pl b/tests/runtests.pl index 3f43b97d3..3c38acc9d 100755 --- a/tests/runtests.pl +++ b/tests/runtests.pl @@ -3284,18 +3284,50 @@ sub singletest { if (@replycheck) { # we use this file instead to check the final output against - + # get the mode attribute + my $filemode=$replycheckattr{'mode'}; + if($filemode && ($filemode eq "text") && $has_textaware) { + # text mode when running on windows: fix line endings + map s/\r\n/\n/g, @replycheck; + map s/\n/\r\n/g, @replycheck; + } if($replycheckattr{'nonewline'}) { # Yes, we must cut off the final newline from the final line # of the datacheck chomp($replycheck[$#replycheck]); } - if($replycheckattr{'mode'}) { - $replyattr{'mode'} = $replycheckattr{'mode'}; + + for my $partsuffix (('1', '2', '3', '4')) { + my @replycheckpart = getpart("reply", "datacheck".$partsuffix); + if(@replycheckpart || partexists("reply", "datacheck".$partsuffix) ) { + my %replycheckpartattr = getpartattr("reply", "datacheck".$partsuffix); + # get the mode attribute + my $filemode=$replycheckpartattr{'mode'}; + if($filemode && ($filemode eq "text") && $has_textaware) { + # text mode when running on windows: fix line endings + map s/\r\n/\n/g, @replycheckpart; + map s/\n/\r\n/g, @replycheckpart; + } + if($replycheckpartattr{'nonewline'}) { + # Yes, we must cut off the final newline from the final line + # of the datacheck + chomp($replycheckpart[$#replycheckpart]); + } + push(@replycheck, @replycheckpart); + } } @reply=@replycheck; } + else { + # get the mode attribute + my $filemode=$replyattr{'mode'}; + if($filemode && ($filemode eq "text") && $has_textaware) { + # text mode when running on windows: fix line endings + map s/\r\n/\n/g, @reply; + map s/\n/\r\n/g, @reply; + } + } # this is the valid protocol blurb curl should generate my @protocol= fixarray ( getpart("verify", "protocol") ); @@ -3831,14 +3863,6 @@ sub singletest { if(!$replyattr{'nocheck'} && (@reply || $replyattr{'sendzero'})) { # verify the received data my @out = loadarray($CURLOUT); - # get the mode attribute - my $filemode=$replyattr{'mode'}; - if($filemode && ($filemode eq "text") && $has_textaware) { - # text mode when running on windows: fix line endings - map s/\r\n/\n/g, @reply; - map s/\n/\r\n/g, @reply; - } - $res = compare($testnum, $testname, "data", \@out, \@reply); if ($res) { return 1;