mirror of
https://github.com/curl/curl.git
synced 2026-05-30 05:17:30 +03:00
runtests.pl: support the nonewline attribute for the data part
Added to FILEFORMAT Closes #8239
This commit is contained in:
parent
b6acbdeb63
commit
736847611a
3 changed files with 21 additions and 2 deletions
|
|
@ -188,7 +188,7 @@ When using curl built with Hyper, the keywords must include HTTP or HTTPS for
|
|||
'hyper mode' to kick in and make line ending checks work for tests.
|
||||
## `<reply>`
|
||||
|
||||
### `<data [nocheck="yes"] [sendzero="yes"] [base64="yes"] [hex="yes"]>`
|
||||
### `<data [nocheck="yes"] [sendzero="yes"] [base64="yes"] [hex="yes"] [nonewline="yes"]>`
|
||||
|
||||
data to be sent to the client on its request and later verified that it
|
||||
arrived safely. Set `nocheck="yes"` to prevent the test script from verifying
|
||||
|
|
@ -214,6 +214,9 @@ much sense for other sections than "data").
|
|||
`hex=yes` means that the data is a sequence of hex pairs. It will get decoded
|
||||
and used as "raw" data.
|
||||
|
||||
`nonewline=yes` means that the last byte (the trailing newline character)
|
||||
should be cut off from the data before sending or comparing it.
|
||||
|
||||
For FTP file listings, the `<data>` section will be used *only* if you make
|
||||
sure that there has been a CWD done first to a directory named `test-[num]`
|
||||
where [num] is the test case number. Otherwise the ftp server can't know from
|
||||
|
|
|
|||
|
|
@ -3885,6 +3885,13 @@ sub singletest {
|
|||
else {
|
||||
# check against the data section
|
||||
@reply = getpart("reply", "data");
|
||||
if(@reply) {
|
||||
my %hash = getpartattr("reply", "data");
|
||||
if($hash{'nonewline'}) {
|
||||
# cut off the final newline from the final line of the data
|
||||
chomp($reply[$#reply]);
|
||||
}
|
||||
}
|
||||
# get the mode attribute
|
||||
my $filemode=$replyattr{'mode'};
|
||||
if($filemode && ($filemode eq "text") && $has_textaware) {
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 1998 - 2021, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
* Copyright (C) 1998 - 2022, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
|
|
@ -323,6 +323,7 @@ int getpart(char **outbuf, size_t *outlen,
|
|||
size_t datalen;
|
||||
int in_wanted_part = 0;
|
||||
int base64 = 0;
|
||||
int nonewline = 0;
|
||||
int error;
|
||||
|
||||
enum {
|
||||
|
|
@ -389,6 +390,8 @@ int getpart(char **outbuf, size_t *outlen,
|
|||
if(error)
|
||||
return error;
|
||||
}
|
||||
if(nonewline)
|
||||
(*outlen)--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -406,6 +409,8 @@ int getpart(char **outbuf, size_t *outlen,
|
|||
if(error)
|
||||
return error;
|
||||
}
|
||||
if(nonewline)
|
||||
(*outlen)--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -480,6 +485,10 @@ int getpart(char **outbuf, size_t *outlen,
|
|||
/* bit rough test, but "mostly" functional, */
|
||||
/* treat wanted part data as base64 encoded */
|
||||
base64 = 1;
|
||||
if(strstr(patt, "nonewline=")) {
|
||||
show(("* setting nonewline\n"));
|
||||
nonewline = 1;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue