aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDan Fandrich <dan@coneharvesters.com>2017-05-06 09:04:00 +0200
committerDan Fandrich <dan@coneharvesters.com>2017-05-06 09:04:00 +0200
commitba5fa1c7a825da75da6f0686ee89e2b64a9cb0f5 (patch)
tree5406a9235155add175feae8bce933f8749604435 /tests
parent6dc3422d48b002887ae3a78afdf626f792397c06 (diff)
runtests.pl: simplify the datacheck read section
Also, document that numbered datacheck sections are possible.
Diffstat (limited to 'tests')
-rw-r--r--tests/FILEFORMAT12
-rwxr-xr-xtests/runtests.pl33
2 files changed, 17 insertions, 28 deletions
diff --git a/tests/FILEFORMAT b/tests/FILEFORMAT
index 04a6daeb7..5c1e96f53 100644
--- a/tests/FILEFORMAT
+++ b/tests/FILEFORMAT
@@ -86,11 +86,18 @@ The connect section is used instead of the 'data' for all CONNECT
requests. The remainder of the rules for the data section then apply but with
a connect prefix.
</connect>
-<datacheck [nonewline="yes"]>
+<datacheck [mode="text"] [nonewline="yes"]>
if the data is sent but this is what should be checked afterwards. If
'nonewline' is set, we will cut off the trailing newline of this given data
-before comparing with the one actually received by the client
+before comparing with the one actually received by the client.
+
+Use the mode="text" attribute if the output is in text mode on platforms that
+have a text/binary difference.
</datacheck>
+<datacheckNUM [nonewline="yes"] [mode="text"]>
+The contents of numbered datacheck sections are appended to the non-numbered
+one.
+</datacheckNUM>
<size>
number to return on a ftp SIZE command (set to -1 to make this command fail)
</size>
@@ -176,6 +183,7 @@ ftp-ipv6
ftps
http
http-ipv6
+http-pipe
http-proxy
http-unix
https
diff --git a/tests/runtests.pl b/tests/runtests.pl
index 68ff3933e..48e26142f 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -3333,31 +3333,12 @@ sub singletest {
}
logmsg sprintf("test %04d...", $testnum) if(!$automakestyle);
- # extract the reply data
- my @reply = getpart("reply", "data");
- my @replycheck = getpart("reply", "datacheck");
-
my %replyattr = getpartattr("reply", "data");
- my %replycheckattr = getpartattr("reply", "datacheck");
-
- 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]);
- }
-
- for my $partsuffix (('1', '2', '3', '4')) {
+ my @reply;
+ if (partexists("reply", "datacheck")) {
+ for my $partsuffix (('', '1', '2', '3', '4')) {
my @replycheckpart = getpart("reply", "datacheck".$partsuffix);
- if(@replycheckpart || partexists("reply", "datacheck".$partsuffix) ) {
+ if(@replycheckpart) {
my %replycheckpartattr = getpartattr("reply", "datacheck".$partsuffix);
# get the mode attribute
my $filemode=$replycheckpartattr{'mode'};
@@ -3371,13 +3352,13 @@ sub singletest {
# of the datacheck
chomp($replycheckpart[$#replycheckpart]);
}
- push(@replycheck, @replycheckpart);
+ push(@reply, @replycheckpart);
}
}
-
- @reply=@replycheck;
}
else {
+ # check against the data section
+ @reply = getpart("reply", "data");
# get the mode attribute
my $filemode=$replyattr{'mode'};
if($filemode && ($filemode eq "text") && $has_textaware) {