2007-03-08 15:00:28 -05:00
|
|
|
The test suite's file format is very simple and extensible, closely
|
2007-01-22 21:25:56 -05:00
|
|
|
resembling XML. All data for a single test case resides in a single
|
|
|
|
ASCII file. Labels mark the beginning and the end of all sections, and each
|
|
|
|
label must be written in its own line. Comments are either XML-style
|
|
|
|
(enclosed with <!-- and -->) or C-style (beginning with #) and must appear
|
|
|
|
on their own lines and not alongside actual test data. Most test data files
|
|
|
|
are syntactically valid XML, although a few files are not (lack of
|
2007-03-08 15:00:28 -05:00
|
|
|
support for character entities and the preservation of CR/LF characters at
|
|
|
|
the end of lines are the biggest differences).
|
2007-01-22 21:25:56 -05:00
|
|
|
|
|
|
|
The file begins with a 'testcase' tag, which encompasses the remainder of
|
|
|
|
the file.
|
|
|
|
|
|
|
|
<testcase>
|
2001-09-13 08:51:32 -04:00
|
|
|
|
|
|
|
Each file is split up in three main sections: reply, client and verify. The
|
|
|
|
reply section is used for the server to know what to send as a reply for the
|
|
|
|
requests curl sends, the client section defines how the client should behave
|
|
|
|
while the verify section defines how to verify that the data stored after a
|
|
|
|
command has been run ended up correctly.
|
|
|
|
|
|
|
|
Each main section has a number of available subsections that can be
|
|
|
|
specified, that will be checked/used if specified. This document includes all
|
|
|
|
the subsections currently supported.
|
|
|
|
|
2005-04-15 19:48:31 -04:00
|
|
|
Main sections are 'info', 'reply', 'client' and 'verify'.
|
|
|
|
|
|
|
|
<info>
|
|
|
|
<keywords>
|
|
|
|
A newline-separated list of keywords describing what this test case uses and
|
2008-07-26 22:34:27 -04:00
|
|
|
tests. Try to use an already used keyword. These keywords will be used for
|
|
|
|
statistical/informational purposes and for choosing or skipping classes
|
|
|
|
of tests. "Keywords" must begin with an alphabetic character, "-", "["
|
|
|
|
or "{" and may actually consist of multiple words separated by spaces
|
|
|
|
which are treated together as a single identifier.
|
2005-04-15 19:48:31 -04:00
|
|
|
</keywords>
|
|
|
|
</info>
|
|
|
|
|
2001-09-13 08:51:32 -04:00
|
|
|
<reply>
|
2009-01-07 16:57:26 -05:00
|
|
|
<data [nocheck="yes"] [sendzero="yes"] [base64="yes"]>
|
2007-01-22 21:25:56 -05:00
|
|
|
data to be sent to the client on its request and later verified that it arrived
|
2009-01-07 16:57:26 -05:00
|
|
|
safely. Set nocheck="yes" to prevent the test script from verifying the arrival
|
2002-01-08 04:32:21 -05:00
|
|
|
of this data.
|
2003-07-19 19:56:44 -04:00
|
|
|
|
2004-03-31 07:24:08 -05:00
|
|
|
If the data contains 'swsclose' anywhere within the start and end tag, and
|
2003-07-19 19:56:44 -04:00
|
|
|
this is a HTTP test, then the connection will be closed by the server after
|
2007-01-22 21:25:56 -05:00
|
|
|
this response is sent. If not, the connection will be kept persistent.
|
2004-03-31 07:24:08 -05:00
|
|
|
|
|
|
|
If the data contains 'swsbounce' anywhere within the start and end tag, the
|
|
|
|
HTTP server will detect if this is a second request using the same test and
|
|
|
|
part number and will then increase the part number with one. This is useful
|
|
|
|
for auth tests and similar.
|
2004-08-23 10:40:43 -04:00
|
|
|
|
|
|
|
'sendzero' set to yes means that the (FTP) server will "send" the data even if
|
|
|
|
the size is zero bytes. Used to verify curl's behaviour on zero bytes
|
|
|
|
transfers.
|
2004-11-29 07:10:09 -05:00
|
|
|
|
|
|
|
'base64' set to yes means that the data provided in the test-file is a chunk
|
|
|
|
of data encoded with base64. It is the only way a test case can contain binary
|
|
|
|
data. (This attribute can in fact be used on any section, but it doesn't make
|
|
|
|
much sense for other sections than "data").
|
2014-01-04 17:39:30 -05:00
|
|
|
|
|
|
|
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 which
|
|
|
|
test file to load the list content.
|
|
|
|
|
2001-09-13 08:51:32 -04:00
|
|
|
</data>
|
2003-05-22 18:37:00 -04:00
|
|
|
<dataNUM>
|
|
|
|
Send back this contents instead of the <data> one. The num is set by:
|
|
|
|
A) The test number in the request line is >10000 and this is the remainder
|
|
|
|
of [test case number]%10000.
|
2003-09-15 17:43:03 -04:00
|
|
|
B) The request was HTTP and included digest details, which adds 1000 to NUM
|
|
|
|
C) If a HTTP request is NTLM type-1, it adds 1001 to num
|
|
|
|
D) If a HTTP request is NTLM type-3, it adds 1002 to num
|
2008-11-25 18:23:47 -05:00
|
|
|
E) If a HTTP request is Basic and num is already >=1000, it adds 1 to num
|
2017-07-18 14:46:21 -04:00
|
|
|
F) If a HTTP request is Negotiate, num gets incremented by one for each
|
|
|
|
request with Negotiate authorization header on the same test case.
|
2008-11-25 18:23:47 -05:00
|
|
|
|
|
|
|
Dynamically changing num in this way allows the test harness to be used to
|
|
|
|
test authentication negotiation where several different requests must be sent
|
|
|
|
to complete a transfer. The response to each request is found in its own data
|
|
|
|
section. Validating the entire negotiation sequence can be done by
|
|
|
|
specifying a datacheck section.
|
2004-12-14 16:22:12 -05:00
|
|
|
</dataNUM>
|
2013-03-15 12:28:32 -04:00
|
|
|
<connect>
|
|
|
|
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>
|
2017-05-06 03:04:00 -04:00
|
|
|
<datacheck [mode="text"] [nonewline="yes"]>
|
2002-06-11 11:11:41 -04:00
|
|
|
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
|
2017-05-06 03:04:00 -04:00
|
|
|
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.
|
2001-09-13 08:51:32 -04:00
|
|
|
</datacheck>
|
2017-05-06 03:04:00 -04:00
|
|
|
<datacheckNUM [nonewline="yes"] [mode="text"]>
|
|
|
|
The contents of numbered datacheck sections are appended to the non-numbered
|
|
|
|
one.
|
|
|
|
</datacheckNUM>
|
2001-09-13 08:51:32 -04:00
|
|
|
<size>
|
2003-02-28 02:55:01 -05:00
|
|
|
number to return on a ftp SIZE command (set to -1 to make this command fail)
|
2001-09-13 08:51:32 -04:00
|
|
|
</size>
|
2003-04-09 07:53:09 -04:00
|
|
|
<mdtm>
|
|
|
|
what to send back if the client sends a (FTP) MDTM command, set to -1 to
|
|
|
|
have it return that the file doesn't exist
|
|
|
|
</mdtm>
|
2001-11-02 18:09:25 -05:00
|
|
|
<postcmd>
|
|
|
|
special purpose server-command to control its behavior *after* the
|
|
|
|
reply is sent
|
2007-04-23 17:18:30 -04:00
|
|
|
For HTTP/HTTPS, these are supported:
|
|
|
|
|
|
|
|
wait [secs]
|
|
|
|
- Pause for the given time
|
2002-01-08 04:32:21 -05:00
|
|
|
</postcmd>
|
2004-03-31 07:24:08 -05:00
|
|
|
<servercmd>
|
2005-04-14 18:52:08 -04:00
|
|
|
Special-commands for the server.
|
2012-09-04 13:41:09 -04:00
|
|
|
For FTP/SMTP/POP/IMAP, these are supported:
|
2007-04-23 17:18:30 -04:00
|
|
|
|
2006-09-23 16:39:34 -04:00
|
|
|
REPLY [command] [return value] [response string]
|
2007-08-23 19:24:39 -04:00
|
|
|
- Changes how the server responds to the [command]. [response string] is
|
|
|
|
evaluated as a perl string, so it can contain embedded \r\n, for example.
|
2013-02-18 17:40:29 -05:00
|
|
|
There's a special [command] named "welcome" (without quotes) which is the
|
|
|
|
string sent immediately on connect as a welcome.
|
2017-11-30 18:45:46 -05:00
|
|
|
REPLYLF (like above but sends the response terminated with LF-only and not
|
|
|
|
CRLF)
|
2006-09-23 16:39:34 -04:00
|
|
|
COUNT [command] [num]
|
|
|
|
- Do the REPLY change for [command] only [num] times and then go back to the
|
|
|
|
built-in approach
|
|
|
|
DELAY [command] [secs]
|
|
|
|
- Delay responding to this command for the given time
|
2005-04-14 18:52:08 -04:00
|
|
|
RETRWEIRDO
|
2006-09-23 16:39:34 -04:00
|
|
|
- Enable the "weirdo" RETR case when multiple response lines appear at once
|
2015-07-16 22:19:43 -04:00
|
|
|
when a file is transferred
|
2005-04-14 18:52:08 -04:00
|
|
|
RETRNOSIZE
|
2006-09-23 16:39:34 -04:00
|
|
|
- Make sure the RETR response doesn't contain the size of the file
|
2005-04-14 18:52:08 -04:00
|
|
|
NOSAVE
|
2006-09-23 16:39:34 -04:00
|
|
|
- Don't actually save what is received
|
2005-04-14 18:52:08 -04:00
|
|
|
SLOWDOWN
|
2008-10-29 21:44:18 -04:00
|
|
|
- Send FTP responses with 0.01 sec delay between each byte
|
2007-04-23 18:58:45 -04:00
|
|
|
PASVBADIP
|
|
|
|
- makes PASV send back an illegal IP in its 227 response
|
2013-09-08 16:17:47 -04:00
|
|
|
CAPA [capabilities]
|
|
|
|
- Enables support for and specifies a list of space separated capabilities to
|
2013-09-15 11:53:20 -04:00
|
|
|
return to the client for the IMAP CAPABILITY, POP3 CAPA and SMTP EHLO
|
|
|
|
commands
|
2013-09-08 16:46:32 -04:00
|
|
|
AUTH [mechanisms]
|
|
|
|
- Enables support for SASL authentication and specifies a list of space
|
2013-09-15 11:53:20 -04:00
|
|
|
separated mechanisms for IMAP, POP3 and SMTP
|
2005-04-14 18:52:08 -04:00
|
|
|
|
2007-04-23 17:18:30 -04:00
|
|
|
For HTTP/HTTPS:
|
2008-08-29 06:47:59 -04:00
|
|
|
auth_required if this is set and a POST/PUT is made without auth, the
|
2006-01-02 07:19:12 -05:00
|
|
|
server will NOT wait for the full request body to get sent
|
2008-08-29 06:47:59 -04:00
|
|
|
idle do nothing after receiving the request, just "sit idle"
|
|
|
|
stream continuously send data to the client, never-ending
|
2010-10-01 18:21:59 -04:00
|
|
|
writedelay: [secs] delay this amount between reply packets
|
2008-08-29 06:47:59 -04:00
|
|
|
pipe: [num] tell the server to expect this many HTTP requests before
|
2006-09-08 07:56:56 -04:00
|
|
|
sending back anything, to allow pipelining tests
|
2008-08-29 06:47:59 -04:00
|
|
|
skip: [num] instructs the server to ignore reading this many bytes from a PUT
|
|
|
|
or POST request
|
2010-02-01 07:05:08 -05:00
|
|
|
|
|
|
|
rtp: part [num] channel [num] size [num]
|
|
|
|
stream a fake RTP packet for the given part on a chosen channel
|
|
|
|
with the given payload size
|
2012-07-05 03:46:07 -04:00
|
|
|
|
|
|
|
connection-monitor When used, this will log [DISCONNECT] to the server.input
|
2012-07-11 17:49:01 -04:00
|
|
|
log when the connection is disconnected.
|
2014-08-02 18:46:16 -04:00
|
|
|
upgrade when an HTTP upgrade header is found, the server will upgrade
|
|
|
|
to http2
|
2018-08-13 06:12:14 -04:00
|
|
|
swsclose instruct server to close connection after response
|
2013-08-22 13:23:08 -04:00
|
|
|
|
|
|
|
For TFTP:
|
|
|
|
writedelay: [secs] delay this amount between reply packets (each packet being
|
|
|
|
512 bytes payload)
|
2004-03-31 07:24:08 -05:00
|
|
|
</servercmd>
|
2001-09-13 08:51:32 -04:00
|
|
|
</reply>
|
|
|
|
|
|
|
|
<client>
|
2003-04-01 03:43:09 -05:00
|
|
|
|
2002-12-12 07:15:02 -05:00
|
|
|
<server>
|
2004-12-11 16:41:00 -05:00
|
|
|
What server(s) this test case requires/uses:
|
2007-03-09 16:01:39 -05:00
|
|
|
|
|
|
|
file
|
|
|
|
ftp
|
|
|
|
ftp-ipv6
|
|
|
|
ftps
|
|
|
|
http
|
|
|
|
http-ipv6
|
2017-05-06 03:04:00 -04:00
|
|
|
http-pipe
|
2014-07-11 17:33:55 -04:00
|
|
|
http-proxy
|
2014-11-27 17:59:23 -05:00
|
|
|
http-unix
|
2007-03-09 16:01:39 -05:00
|
|
|
https
|
2014-07-11 17:33:55 -04:00
|
|
|
httptls+srp
|
|
|
|
httptls+srp-ipv6
|
2016-06-19 17:52:01 -04:00
|
|
|
http/2
|
2014-07-11 17:33:55 -04:00
|
|
|
imap
|
2007-03-09 16:01:39 -05:00
|
|
|
none
|
2014-07-11 17:33:55 -04:00
|
|
|
pop3
|
|
|
|
rtsp
|
|
|
|
rtsp-ipv6
|
2007-03-23 21:01:28 -04:00
|
|
|
scp
|
|
|
|
sftp
|
2014-07-11 17:33:55 -04:00
|
|
|
smtp
|
2007-06-05 09:50:59 -04:00
|
|
|
socks4
|
|
|
|
socks5
|
2007-03-09 16:01:39 -05:00
|
|
|
|
|
|
|
Give only one per line. This subsection is mandatory.
|
2003-04-01 03:43:09 -05:00
|
|
|
</server>
|
|
|
|
|
2003-06-12 12:22:52 -04:00
|
|
|
<features>
|
2004-11-29 07:23:02 -05:00
|
|
|
A list of features that MUST be present in the client/library for this test to
|
2014-11-21 13:42:40 -05:00
|
|
|
be able to run. If a required feature is not present then the test will be
|
|
|
|
SKIPPED.
|
|
|
|
|
|
|
|
Alternatively a feature can be prefixed with an exclamation mark to indicate a
|
|
|
|
feature is NOT required. If the feature is present then the test will be
|
|
|
|
SKIPPED.
|
|
|
|
|
|
|
|
Features testable here are:
|
2004-11-29 07:23:02 -05:00
|
|
|
|
2007-03-09 18:39:42 -05:00
|
|
|
crypto
|
2014-07-11 17:33:55 -04:00
|
|
|
debug
|
2004-11-22 17:26:46 -05:00
|
|
|
getrlimit
|
2007-01-22 21:25:56 -05:00
|
|
|
GnuTLS
|
2015-07-16 22:19:43 -04:00
|
|
|
GSS-API
|
2018-09-29 07:59:29 -04:00
|
|
|
http/2
|
2007-01-22 21:25:56 -05:00
|
|
|
idn
|
2004-11-25 17:21:49 -05:00
|
|
|
ipv6
|
2015-07-16 22:19:43 -04:00
|
|
|
Kerberos
|
2007-01-22 21:25:56 -05:00
|
|
|
large_file
|
2004-11-29 07:23:02 -05:00
|
|
|
libz
|
2018-04-28 18:24:49 -04:00
|
|
|
manual
|
2014-07-11 17:33:55 -04:00
|
|
|
Metalink
|
2007-04-23 17:18:30 -04:00
|
|
|
NSS
|
2009-05-30 00:34:11 -04:00
|
|
|
NTLM
|
2007-01-22 21:25:56 -05:00
|
|
|
OpenSSL
|
2015-10-18 17:25:26 -04:00
|
|
|
PSL
|
2009-05-30 00:34:11 -04:00
|
|
|
socks
|
2015-07-16 22:19:43 -04:00
|
|
|
SPNEGO
|
2014-07-11 17:33:55 -04:00
|
|
|
SSL
|
2014-11-04 17:02:09 -05:00
|
|
|
SSLpinning
|
2015-07-16 22:19:43 -04:00
|
|
|
SSPI
|
2011-10-06 14:26:42 -04:00
|
|
|
TLS-SRP
|
2013-03-15 14:58:00 -04:00
|
|
|
TrackMemory
|
2017-07-06 05:11:07 -04:00
|
|
|
threaded-resolver
|
2014-07-11 17:33:55 -04:00
|
|
|
unittest
|
2014-11-27 17:59:23 -05:00
|
|
|
unix-sockets
|
2015-07-16 22:19:43 -04:00
|
|
|
WinSSL
|
2017-07-18 14:46:21 -04:00
|
|
|
ld_preload
|
2019-03-03 05:17:52 -05:00
|
|
|
alt-svc
|
2007-03-09 16:01:39 -05:00
|
|
|
|
|
|
|
as well as each protocol that curl supports. A protocol only needs to be
|
|
|
|
specified if it is different from the server (useful when the server
|
|
|
|
is 'none').
|
2003-06-12 12:22:52 -04:00
|
|
|
</features>
|
|
|
|
|
2003-04-01 03:43:09 -05:00
|
|
|
<killserver>
|
|
|
|
Using the same syntax as in <server> but when mentioned here these servers
|
|
|
|
are explicitly KILLED when this test case is completed. Only use this if there
|
|
|
|
is no other alternatives. Using this of course requires subsequent tests to
|
|
|
|
restart servers.
|
|
|
|
</killserver>
|
|
|
|
|
2004-11-23 04:50:16 -05:00
|
|
|
<precheck>
|
|
|
|
A command line that if set gets run by the test script before the test. If an
|
2008-10-15 13:41:02 -04:00
|
|
|
output is displayed by the command or if the return code is non-zero, the test
|
|
|
|
will be skipped and the (single-line) output will be displayed as reason for
|
|
|
|
not running the test. Variables are substituted as in the <command> section.
|
2004-11-23 04:50:16 -05:00
|
|
|
</precheck>
|
|
|
|
|
2007-04-23 18:58:45 -04:00
|
|
|
<postcheck>
|
|
|
|
A command line that if set gets run by the test script after the test. If
|
|
|
|
the command exists with a non-zero status code, the test will be considered
|
|
|
|
to have failed. Variables are substituted as in the <command> section.
|
|
|
|
</postcheck>
|
|
|
|
|
2002-12-12 07:15:02 -05:00
|
|
|
<tool>
|
|
|
|
Name of tool to use instead of "curl". This tool must be built and exist
|
2011-01-03 16:42:46 -05:00
|
|
|
either in the libtest/ directory (if the tool starts with 'lib') or in the
|
|
|
|
unit/ directory (if the tool starts with 'unit').
|
2002-12-12 07:15:02 -05:00
|
|
|
</tool>
|
2003-04-01 03:43:09 -05:00
|
|
|
|
2001-09-13 08:51:32 -04:00
|
|
|
<name>
|
|
|
|
test case description
|
|
|
|
</name>
|
2003-04-01 03:43:09 -05:00
|
|
|
|
2003-05-19 09:06:10 -04:00
|
|
|
<setenv>
|
|
|
|
variable1=contents1
|
|
|
|
variable2=contents2
|
|
|
|
|
|
|
|
Set the given environment variables to the specified value before the actual
|
2007-03-08 15:00:28 -05:00
|
|
|
command is run. They are cleared again after the command has been run.
|
|
|
|
Variables are first substituted as in the <command> section.
|
2003-05-19 09:06:10 -04:00
|
|
|
</setenv>
|
|
|
|
|
2018-03-14 19:27:20 -04:00
|
|
|
<command [option="no-output/no-include/force-output"] [timeout="secs"]
|
|
|
|
[delay="secs"][type="perl"]>
|
2001-09-13 08:51:32 -04:00
|
|
|
command line to run, there's a bunch of %variables that get replaced
|
2003-08-06 18:47:55 -04:00
|
|
|
accordingly.
|
|
|
|
|
|
|
|
Note that the URL that gets passed to the server actually controls what data
|
|
|
|
that is returned. The last slash in the URL must be followed by a number. That
|
|
|
|
number (N) will be used by the test-server to load test case N and return the
|
|
|
|
data that is defined within the <reply><data></data></reply> section.
|
2002-01-08 04:32:21 -05:00
|
|
|
|
2013-03-15 12:28:32 -04:00
|
|
|
If there's no test number found above, the HTTP test server will use the
|
|
|
|
number following the last dot in the given hostname (made so that a CONNECT
|
|
|
|
can still pass on test number) so that "foo.bar.123" gets treated as test case
|
2014-12-27 06:09:01 -05:00
|
|
|
123. Alternatively, if an IPv6 address is provided to CONNECT, the last
|
2015-07-16 22:19:43 -04:00
|
|
|
hexadecimal group in the address will be used as the test number! For example
|
2013-06-04 16:50:58 -04:00
|
|
|
the address "[1234::ff]" would be treated as test case 255.
|
2013-03-15 09:18:16 -04:00
|
|
|
|
2010-11-03 06:22:46 -04:00
|
|
|
Set type="perl" to write the test case as a perl script. It implies that
|
|
|
|
there's no memory debugging and valgrind gets shut off for this test.
|
|
|
|
|
2007-10-26 21:04:36 -04:00
|
|
|
Set option="no-output" to prevent the test script to slap on the --output
|
2002-01-08 04:32:21 -05:00
|
|
|
argument that directs the output to a file. The --output is also not added if
|
2007-10-26 21:04:36 -04:00
|
|
|
the verify/stdout section is used.
|
2002-12-13 11:25:39 -05:00
|
|
|
|
2018-03-14 19:27:20 -04:00
|
|
|
Set option="force-output" to make use of --output even when the test is
|
|
|
|
otherwise written to verify stdout.
|
|
|
|
|
2011-08-04 11:36:00 -04:00
|
|
|
Set option="no-include" to prevent the test script to slap on the --include
|
|
|
|
argument.
|
|
|
|
|
2008-04-25 00:19:50 -04:00
|
|
|
Set timeout="secs" to override default server logs advisor read lock timeout.
|
|
|
|
This timeout is used by the test harness, once that the command has completed
|
|
|
|
execution, to wait for the test server to write out server side log files and
|
|
|
|
remove the lock that advised not to read them. The "secs" parameter is the not
|
|
|
|
negative integer number of seconds for the timeout. This 'timeout' attribute
|
|
|
|
is documented for completeness sake, but is deep test harness stuff and only
|
|
|
|
needed for very singular and specific test cases. Avoid using it.
|
|
|
|
|
|
|
|
Set delay="secs" to introduce a time delay once that the command has completed
|
|
|
|
execution and before the <postcheck> section runs. The "secs" parameter is the
|
|
|
|
not negative integer number of seconds for the delay. This 'delay' attribute
|
|
|
|
is intended for very specific test cases, and normally not needed.
|
|
|
|
|
2002-12-13 11:25:39 -05:00
|
|
|
Available substitute variables include:
|
2014-07-11 17:33:55 -04:00
|
|
|
%CLIENT6IP - IPv6 address of the client running curl
|
|
|
|
%CLIENTIP - IPv4 address of the client running curl
|
|
|
|
%CURL - Path to the curl executable
|
|
|
|
%FTP2PORT - Port number of the FTP server 2
|
2007-01-22 21:25:56 -05:00
|
|
|
%FTP6PORT - IPv6 port number of the FTP server
|
2014-07-11 17:33:55 -04:00
|
|
|
%FTPPORT - Port number of the FTP server
|
2002-12-13 11:25:39 -05:00
|
|
|
%FTPSPORT - Port number of the FTPS server
|
2007-09-05 13:17:59 -04:00
|
|
|
%FTPTIME2 - Timeout in seconds that should be just sufficient to receive
|
|
|
|
a response from the test FTP server
|
2014-07-11 17:33:55 -04:00
|
|
|
%FTPTIME3 - Even longer than %FTPTIME2
|
|
|
|
%GOPHER6PORT - IPv6 port number of the Gopher server
|
|
|
|
%GOPHERPORT - Port number of the Gopher server
|
|
|
|
%HOST6IP - IPv6 address of the host running this test
|
|
|
|
%HOSTIP - IPv4 address of the host running this test
|
|
|
|
%HTTP6PORT - IPv6 port number of the HTTP server
|
|
|
|
%HTTPPIPEPORT - Port number of the HTTP pipelining server
|
2014-12-26 15:45:21 -05:00
|
|
|
%HTTPUNIXPATH - Path to the Unix socket of the HTTP server
|
2014-07-11 17:33:55 -04:00
|
|
|
%HTTPPORT - Port number of the HTTP server
|
|
|
|
%HTTPSPORT - Port number of the HTTPS server
|
|
|
|
%HTTPTLS6PORT - IPv6 port number of the HTTP TLS server
|
|
|
|
%HTTPTLSPORT - Port number of the HTTP TLS server
|
|
|
|
%IMAP6PORT - IPv6 port number of the IMAP server
|
|
|
|
%IMAPPORT - Port number of the IMAP server
|
2015-07-16 22:19:43 -04:00
|
|
|
%POP36PORT - IPv6 port number of the POP3 server
|
2014-07-11 17:33:55 -04:00
|
|
|
%POP3PORT - Port number of the POP3 server
|
|
|
|
%PROXYPORT - Port number of the HTTP proxy
|
|
|
|
%PWD - Current directory
|
2018-11-04 17:30:48 -05:00
|
|
|
%POSIX_PWD - Current directory somewhat mingw friendly
|
|
|
|
%FILE_PWD - Current directory, on windows prefixed with a slash
|
2010-02-01 07:05:08 -05:00
|
|
|
%RTSP6PORT - IPv6 port number of the RTSP server
|
2014-07-11 17:33:55 -04:00
|
|
|
%RTSPPORT - Port number of the RTSP server
|
|
|
|
%SMTP6PORT - IPv6 port number of the SMTP server
|
|
|
|
%SMTPPORT - Port number of the SMTP server
|
|
|
|
%SOCKSPORT - Port number of the SOCKS4/5 server
|
2002-12-13 11:25:39 -05:00
|
|
|
%SRCDIR - Full path to the source dir
|
2014-07-11 17:33:55 -04:00
|
|
|
%SSHPORT - Port number of the SCP/SFTP server
|
|
|
|
%TFTP6PORT - IPv6 port number of the TFTP server
|
|
|
|
%TFTPPORT - Port number of the TFTP server
|
2007-03-23 21:01:28 -04:00
|
|
|
%USER - Login ID of the user running the test
|
2001-09-13 08:51:32 -04:00
|
|
|
</command>
|
2003-04-01 03:43:09 -05:00
|
|
|
|
2001-09-13 08:51:32 -04:00
|
|
|
<file name="log/filename">
|
2007-03-08 15:00:28 -05:00
|
|
|
This creates the named file with this content before the test case is run,
|
2001-09-13 08:51:32 -04:00
|
|
|
which is useful if the test case needs a file to act on.
|
2007-03-08 15:00:28 -05:00
|
|
|
Variables are substituted on the contents of the file as in the <command>
|
|
|
|
section.
|
2001-09-13 08:51:32 -04:00
|
|
|
</file>
|
2003-04-01 03:43:09 -05:00
|
|
|
|
2013-05-07 16:51:59 -04:00
|
|
|
<stdin [nonewline="yes"]>
|
2004-02-05 16:51:45 -05:00
|
|
|
Pass this given data on stdin to the tool.
|
2013-05-07 16:51:59 -04:00
|
|
|
|
|
|
|
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
|
2004-02-05 16:51:45 -05:00
|
|
|
</stdin>
|
|
|
|
|
2001-09-13 08:51:32 -04:00
|
|
|
</client>
|
|
|
|
|
|
|
|
<verify>
|
|
|
|
<errorcode>
|
2005-03-17 03:17:48 -05:00
|
|
|
numerical error code curl is supposed to return. Specify a list of accepted
|
|
|
|
error codes by separating multiple numbers with comma. See test 237 for an
|
|
|
|
example.
|
2001-09-13 08:51:32 -04:00
|
|
|
</errorcode>
|
2001-09-14 08:02:02 -04:00
|
|
|
<strip>
|
|
|
|
One regex per line that is removed from the protocol dumps before the
|
2007-01-22 21:25:56 -05:00
|
|
|
comparison is made. This is very useful to remove dependencies on dynamically
|
2001-09-14 08:02:02 -04:00
|
|
|
changing protocol data such as port numbers or user-agent strings.
|
|
|
|
</strip>
|
2004-11-25 17:21:49 -05:00
|
|
|
<strippart>
|
|
|
|
One perl op per line that operates on the protocol dump. This is pretty
|
|
|
|
advanced. Example: "s/^EPRT .*/EPRT stripped/"
|
|
|
|
</strippart>
|
2011-12-17 17:47:22 -05:00
|
|
|
|
2007-01-22 21:25:56 -05:00
|
|
|
<protocol [nonewline="yes"]>
|
2011-12-17 17:47:22 -05:00
|
|
|
|
|
|
|
the protocol dump curl should transmit, if 'nonewline' is set, we will cut off
|
|
|
|
the trailing newline of this given data before comparing with the one actually
|
|
|
|
sent by the client Variables are substituted as in the <command> section. The
|
|
|
|
<strip> and <strippart> rules are applied before comparisons are made.
|
|
|
|
|
2001-09-13 08:51:32 -04:00
|
|
|
</protocol>
|
2011-12-17 17:47:22 -05:00
|
|
|
|
|
|
|
<proxy [nonewline="yes"]>
|
|
|
|
|
|
|
|
The protocol dump curl should transmit to a HTTP proxy (when the http-proxy
|
|
|
|
server is used), if 'nonewline' is set, we will cut off the trailing newline
|
|
|
|
of this given data before comparing with the one actually sent by the client
|
|
|
|
Variables are substituted as in the <command> section. The <strip> and
|
|
|
|
<strippart> rules are applied before comparisons are made.
|
|
|
|
|
|
|
|
</proxy>
|
|
|
|
|
2008-01-04 18:57:39 -05:00
|
|
|
<stdout [mode="text"] [nonewline="yes"]>
|
2008-05-01 13:48:00 -04:00
|
|
|
This verifies that this data was passed to stdout. Variables are
|
|
|
|
substituted as in the <command> section.
|
2005-05-20 06:40:32 -04:00
|
|
|
|
2007-03-08 15:00:28 -05:00
|
|
|
Use the mode="text" attribute if the output is in text mode on platforms that
|
2005-05-20 06:40:32 -04:00
|
|
|
have a text/binary difference.
|
2008-01-04 18:31:04 -05:00
|
|
|
|
|
|
|
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
|
2002-01-08 04:32:21 -05:00
|
|
|
</stdout>
|
2007-01-22 21:25:56 -05:00
|
|
|
<file name="log/filename" [mode="text"]>
|
2005-05-20 06:40:32 -04:00
|
|
|
The file's contents must be identical to this after the test is complete.
|
2007-03-08 15:00:28 -05:00
|
|
|
Use the mode="text" attribute if the output is in text mode on platforms that
|
2005-05-20 06:40:32 -04:00
|
|
|
have a text/binary difference.
|
2007-09-20 16:39:17 -04:00
|
|
|
Variables are substituted as in the <command> section.
|
2001-09-26 03:05:00 -04:00
|
|
|
</file>
|
2018-10-06 06:57:12 -04:00
|
|
|
<file1>
|
|
|
|
1 to 4 can be appended to 'file' to compare more files.
|
|
|
|
</file1>
|
|
|
|
<file2>
|
|
|
|
</file2>
|
|
|
|
<file3>
|
|
|
|
</file3>
|
|
|
|
<file4>
|
|
|
|
</file4>
|
2005-01-20 17:48:43 -05:00
|
|
|
<stripfile>
|
2016-06-03 17:54:06 -04:00
|
|
|
One perl op per line that operates on the output file or stdout before being
|
|
|
|
compared with what is stored in the test file. This is pretty
|
|
|
|
advanced. Example: "s/^EPRT .*/EPRT stripped/"
|
2005-01-20 17:48:43 -05:00
|
|
|
</stripfile>
|
2018-10-06 06:57:12 -04:00
|
|
|
<stripfile1>
|
|
|
|
1 to 4 can be appended to 'stripfile' to strip the correspending <fileN>
|
|
|
|
content
|
|
|
|
</stripfile1>
|
|
|
|
<stripfile2>
|
|
|
|
</stripfile2>
|
|
|
|
<stripfile3>
|
|
|
|
</stripfile3>
|
|
|
|
<stripfile4>
|
|
|
|
</stripfile4>
|
2001-09-13 08:51:32 -04:00
|
|
|
<upload>
|
|
|
|
the contents of the upload data curl should have sent
|
|
|
|
</upload>
|
2005-01-07 16:11:13 -05:00
|
|
|
<valgrind>
|
|
|
|
disable - disables the valgrind log check for this test
|
|
|
|
</valgrind>
|
2001-09-13 08:51:32 -04:00
|
|
|
</verify>
|
2007-01-22 21:25:56 -05:00
|
|
|
|
|
|
|
</testcase>
|