Changelog
+Dan F (22 January 2007)
+- Converted (most of) the test data files into genuine XML. A handful still
+ are not, due mainly to the lack of support for XML character entities
+ (e.g. & => & ). This will make it easier to validate test files using
+ tools like xmllint, as well as to edit and view them using XML tools.
+
Daniel (16 January 2007)
- Armel Asselin improved libcurl to behave a lot better when an easy handle
doing an FTP transfer is removed from a multi handle before completion. The
- The file format of the test suite is a very simple and extendable format. All
-data for a single test case resides in a single ASCII file. Labels mark the
-beginning and the end of all sections. Each label must be written in its own
-line and is resembling XML/HTML.
+ The test suite's file format is very simple and extendable, closely
+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
+support for character entities is the biggest omission).
+
+ The file begins with a 'testcase' tag, which encompasses the remainder of
+the file.
+
+<testcase>
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
</info>
<reply>
-<data [nocheck=1] [sendzero=yes] [base64=yes]>
-§data to sent to the client on its request and later verified that it arrived
+<data [nocheck="1"] [sendzero="yes"] [base64="yes"]>
+data to be sent to the client on its request and later verified that it arrived
safely. Set the nocheck=1 to prevent the test script to verify the arrival
of this data.
If the data contains 'swsclose' anywhere within the start and end tag, and
this is a HTTP test, then the connection will be closed by the server after
-this response is sent. If not, the connection will be kept persistant.
+this response is sent. If not, the connection will be kept persistent.
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
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
</dataNUM>
-<datacheck [nonewline=yes]>
+<datacheck [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
be able to run (if these features are not present, the test will be
SKIPPED). Features testable here are:
-SSL
-netrc_debug
-large_file
-idn
getrlimit
+GnuTLS
+idn
ipv6
+large_file
libz
+netrc_debug
+OpenSSL
+SSL
</features>
<killserver>
command is run, they are cleared again after the command has been run.
</setenv>
-<command [option=no-output]>
+<command [option="no-output"]>
command line to run, there's a bunch of %variables that get replaced
accordingly.
the client/stdout section is used.
Available substitute variables include:
-%HOSTIP - IP address of the host running this test
+%HOSTIP - IPv6 address of the host running this test
%HOSTPORT - Port number of the HTTP server
+%HOST6IP - IPv6 address of the host running this test
+%HOST6PORT - IPv6 port number of the HTTP server
%HTTPSPORT - Port number of the HTTPS server
%FTPPORT - Port number of the FTP server
+%FTP6PORT - IPv6 port number of the FTP server
%FTPSPORT - Port number of the FTPS server
+%FTP2PORT - Port number of the FTP server 2
+%TFTPPORT - Port number of the TFTP server
+%TFTP6PORT - IPv6 port number of the TFTP server
%SRCDIR - Full path to the source dir
%PWD - Current directory
+%CURL - Path to the curl executable
</command>
<file name="log/filename">
</errorcode>
<strip>
One regex per line that is removed from the protocol dumps before the
-comparison is made. This is very useful to remove dependencies on dynamicly
+comparison is made. This is very useful to remove dependencies on dynamically
changing protocol data such as port numbers or user-agent strings.
</strip>
<strippart>
One perl op per line that operates on the protocol dump. This is pretty
advanced. Example: "s/^EPRT .*/EPRT stripped/"
</strippart>
-<protocol [nonewline=yes]>
+<protocol [nonewline="yes"]>
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
</protocol>
-<stdout [mode=text]>
-This verfies that this data was passed to stdout.
+<stdout [mode="text"]>
+This verifies that this data was passed to stdout.
-Use the "mode=text" attribute if the output is in text mode on platforms that
+Use the "mode="text"" attribute if the output is in text mode on platforms that
have a text/binary difference.
</stdout>
-<file name="log/filename" [mode=text]>
+<file name="log/filename" [mode="text"]>
The file's contents must be identical to this after the test is complete.
-Use the "mode=text" attribute if the output is in text mode on platforms that
+Use the "mode="text" attribute if the output is in text mode on platforms that
have a text/binary difference.
</file>
<stripfile>
disable - disables the valgrind log check for this test
</valgrind>
</verify>
+
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
Content-Type: text/html
Funny-head: yesyes
-<foo>
+-foo-
</data>
</reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
feature
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
upload this
</upload>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
upload this
</upload>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
worx?
</upload>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
USER anonymous\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
PASS curl_by_daniel@haxx.se\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
--crlf option\r
</upload>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
0123456789abcdef
0123456789abcdef
</data>
-<datacheck nonewline=yes>
+<datacheck nonewline="yes">
0123456789abc
</datacheck>
<size>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
Last-Modified: Wed, 09 Apr 2003 10:26:59 GMT\r
</stdout>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
</reply>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
</reply>
send away this contents
</file>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
</info>
# Server-side
<reply>
-<data nocheck=true>
+<data nocheck="true">
HTTP/1.4 200 OK\r
Fake: yes\r
Fake: yes\r
\r
</protocol>
</verify>
+</testcase>
-# Server-side
+<testcase>
+
+<!-- Server-side -->
<reply>
-# no <data> in this test since we have NTLM from the start
+<!-- no <data> in this test since we have NTLM from the start
+
+This is supposed to be returned when the server gets a first
+Authorization: NTLM line passed-in from the client -->
-# This is supposed to be returned when the server gets a first
-# Authorization: NTLM line passed-in from the client
<data1001>
HTTP/1.1 401 Now gimme that second request of crap\r
Server: Microsoft-IIS/5.0\r
\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
-<data nocheck=1>
+<data nocheck="1">
HTTP/1.0 401 BAD BOY
Server: swsclose
Content-Type: text/html
22
</errorcode>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
# reply back and ask for Digest auth
This IS the second real page!
</stdout>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<servercmd>
four is the number of lines
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<servercmd>
four is the number of lines
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
four is the number of lines
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
52
</errorcode>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
-# no <data> in this test since we have NTLM from the start
+<!-- no <data> in this test since we have NTLM from the start
+
+This is supposed to be returned when the server gets a first
+Authorization: NTLM line passed-in from the client -->
-# This is supposed to be returned when the server gets a first
-# Authorization: NTLM line passed-in from the client
<data1001>
HTTP/1.1 401 Now gimme that second request of crap\r
Server: Microsoft-IIS/5.0\r
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
-<data nocheck=true>
+<data nocheck="true">
HTTP/1.1 200 OK swsclose\r
Date: Thu, 09 Nov 2010 14:49:00 GMT\r
Content-Length: 9\r
\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
18
</errorcode>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
-<data1001 nocheck=1>
+<data1001 nocheck="1">
HTTP/1.0 407 BAD BOY
Proxy-Authenticate: Basic realm="Squid proxy-caching web server"
Server: swsclose
22
</errorcode>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
------------------------------c2d1767eb6ac--\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
# This particular response is an exact excerpt from an actual Apache
# server when asked for a 0-10,12-15 range.
\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
------------------------------b0b3d6d23991--\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
</reply>
52
</errorcode>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
Proxy-Connection: Keep-Alive\r
\r
</protocol>
-<file name="log/jar171" mode=text>
+<file name="log/jar171" mode="text">
# Netscape HTTP Cookie File
# http://curlm.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
.z.x.com TRUE / FALSE 0 XToken xt
</file>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
------------------------------5dbea401cd8c--\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
<strip>
^User-Agent:.*
</strip>
-<protocol nonewline=yes>
+<protocol nonewline="yes">
POST /174 HTTP/1.1\r
User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6\r
Host: 127.0.0.1:%HTTPPORT\r
junkelijunk
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
<strip>
^User-Agent:.*
</strip>
-<protocol nonewline=yes>
+<protocol nonewline="yes">
POST /175 HTTP/1.1\r
User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6\r
Host: 127.0.0.1:%HTTPPORT\r
junkelijunk
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
# the first request has NTLM type-1 included, and then the 1001 is returned
<strip>
^User-Agent:.*
</strip>
-<protocol nonewline=yes>
+<protocol nonewline="yes">
POST /176 HTTP/1.1\r
Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=\r
User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6\r
junkelijunk
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
</info>
# Server-side
<reply>
-<data nocheck=1>
+<data nocheck="1">
HTTP/1.1 200 OK
Funny-head: yesyes
Content-Length: 4\r
hoo
</stdout>
</verify>
+</testcase>
+<testcase>
<reply>
<data>
HTTP/1.0 200 OK swsclose
feature
</protocol>
</verify>
+</testcase>
+<testcase>
<reply>
<data>
HTTP/1.0 200 OK swsclose
feature
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
-<data sendzero=yes>
+<data sendzero="yes">
</data>
<size>
0
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
------------------------------212d9006ceb5--\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
33
</errorcode>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
7
</errorcode>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
moooooooo
CWD path\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
-<data nocheck=1>
+<data nocheck="1">
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Content-Length: 8
1
</stdout>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
-<data nocheck=1>
+<data nocheck="1">
HTTP/1.1 302 OK swsbounce swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Content-Length: 8
monster
</data>
-<data1 nocheck=1>
+<data1 nocheck="1">
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Content-Length: 8
</stdout>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
</reply>
PASS curl_by_daniel@haxx.se\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
</reply>
PASS curl_by_daniel@haxx.se\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
-<data nocheck=1>
+<data nocheck="1">
HTTP/1.1 503 OK swsbounce
Date: Thu, 09 Nov 2010 14:49:00 GMT
Content-Length: 21
server not available
</data>
-<data1 nocheck=1>
+<data1 nocheck="1">
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Content-Length: 3
</stdout>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply name="1">
Content-Type: text/html
Funny-head: yesyes
-<foo>
+-foo-
</data>
</reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
[insert full protocol verifiction dump here]
</data>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
non-existing host name
6
</errorcode>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
# Verify data after the test has been "shot"
<verify>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
37
</errorcode>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
contents in a single file
</stdout>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
# Verify data after the test has been "shot"
<verify>
</verify>
+</testcase>
+<testcase>
# no Server-side
# Client-side
write
</file>
</verify>
+</testcase>
+<testcase>
# no Server-side
# Client-side
23
</errorcode>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
18
</errorcode>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
feature
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FAILURE
2
</errorcode>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<strippart>
s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/
</strippart>
-<protocol nonewline=yes>
+<protocol nonewline="yes">
CONNECT test.remote.server.com:213 HTTP/1.0\r
Host: test.remote.server.com:213\r
Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=\r
postit
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
Content-Type: text/html
Funny-head: yesyes
-<foo>
+-foo-
</data>
</reply>
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
# When doing LIST, we get the default list output hard-coded in the test
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
</reply>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
# this is returned first since we get no proxy-auth
-<data nocheck=1>
+<data nocheck="1">
HTTP/1.1 405 Method Not Allowed swsclose\r
\r
And you should ignore this data.
000 405
</stdout>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
#
# Server-side
<reply>
-<data base64=yes>
+<data base64="yes">
SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy
dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg
UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
#
# Server-side
<reply>
-<data base64=yes>
+<data base64="yes">
SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy
dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg
UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K
61
</errorcode>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
#
# Server-side
<reply>
-<data base64=yes>
+<data base64="yes">
SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy
dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg
UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
# Server-side
<reply>
# this deflate chunk has three bytes removed from the beginning
-<data base64=yes>
+<data base64="yes">
SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy
dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg
UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K
61
</errorcode>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
#
# Server-side
<reply>
-<data base64=yes>
+<data base64="yes">
SFRUUC8xLjEgMjAwIE9LDQpEYXRlOiBNb24sIDI5IE5vdiAyMDA0IDIxOjU2OjUzIEdNVA0KU2Vy
dmVyOiBBcGFjaGUvMS4zLjMxIChEZWJpYW4gR05VL0xpbnV4KSBtb2RfZ3ppcC8xLjMuMjYuMWEg
UEhQLzQuMy45LTEgbW9kX3NzbC8yLjguMjAgT3BlblNTTC8wLjkuN2QgbW9kX3BlcmwvMS4yOQ0K
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
3
</errorcode>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
3
</errorcode>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
11
</errorcode>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
unsupported protocol
1
</errorcode>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
</reply>
worx?
</upload>
</verify>
+</testcase>
+<testcase>
# Client-side
<client>
<server>
25
</errorcode>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
</reply>
PASV\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
</reply>
PASV\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<strippart>
s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/
</strippart>
-<protocol nonewline=yes>
+<protocol nonewline="yes">
POST http://%HOSTIP:%HTTPPORT/239 HTTP/1.1\r
Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=\r
User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13\r
postit
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
</info>
# Server-side
<reply>
-<data nocheck=1>
+<data nocheck="1">
HTTP/1.0 404 BAD BOY
Content-Type: text/html
22
</errorcode>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
Content-Type: text/html
Funny-head: yesyes
-<foo>
+-foo-
</data>
</reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
<strippart>
s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/
</strippart>
-<protocol nonewline=yes>
+<protocol nonewline="yes">
POST http://127.0.0.1:8990/243 HTTP/1.1\r
User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13\r
Host: 127.0.0.1:8990\r
postit
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
<strip>
^User-Agent:.*
</strip>
-<protocol nonewline=yes>
+<protocol nonewline="yes">
POST /245 HTTP/1.1\r
User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6\r
Host: 127.0.0.1:%HTTPPORT\r
junkelijunk
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
<strip>
^User-Agent:.*
</strip>
-<protocol nonewline=yes>
+<protocol nonewline="yes">
POST /246 HTTP/1.1\r
User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6\r
Host: 127.0.0.1:%HTTPPORT\r
junkelijunk
</protocol>
</verify>
+</testcase>
+<testcase>
<reply>
<mdtm>
213 20030409102659
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<reply>
<mdtm>
213 20050409102659
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
47
</errorcode>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
# When doing LIST, we get the default list output hard-coded in the test
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP-ipv6
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP-ipv6
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP-ipv6
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP-ipv6
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
</info>
# Server-side
<reply>
-<data nocheck=1>
+<data nocheck="1">
HTTP/1.0 200 Mooo
Date: Mon, 13 Nov 2000 13:41:09 GMT
Server: myown/1.0
download on.
</file>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
------------------------------7c633d5c27ce--\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
------------------------------7c633d5c27ce--\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
Content-Type: text/html
Funny-head: yesyes
-<foo>
+-foo-
</data>
</reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<strippart>
s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/
</strippart>
-<protocol nonewline=yes>
+<protocol nonewline="yes">
CONNECT test.remote.server.com:265 HTTP/1.0\r
Host: test.remote.server.com:265\r
Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=\r
postit
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
</file>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
# Server-side
<reply>
-# no <data> in this test since we have NTLM from the start
+<!-- no <data> in this test since we have NTLM from the start
+
+This is supposed to be returned when the server gets a first
+Authorization: NTLM line passed-in from the client -->
-# This is supposed to be returned when the server gets a first
-# Authorization: NTLM line passed-in from the client
<data1001>
HTTP/1.1 401 Now gimme that second request of crap\r
Server: Microsoft-IIS/5.0\r
<strippart>
s/^(Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA).*/$1/
</strippart>
-<protocol nonewline=yes>
+<protocol nonewline="yes">
POST /267 HTTP/1.1\r
Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=\r
User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3\r
data
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
TFTP
mode: octet
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
47
</errorcode>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
--------------------------------\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>\r
<keywords>\r
HTTP\r
\r
</protocol>\r
</verify>\r
+</testcase>
+<testcase>
<info>\r
<keywords>\r
HTTP\r
\r
</protocol>\r
</verify>\r
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
upload
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
TFTP
mode: octet
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
TFTP
mode: octet
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
TFTP
mode: octet
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
TFTP
mode: octet
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
28
</errorcode>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
<strip>
^User-Agent:.*
</strip>
-<protocol nonewline=yes>
+<protocol nonewline="yes">
POST /3 HTTP/1.1\r
Authorization: Basic ZmFrZTotdXNlcg==\r
Host: 127.0.0.1:%HTTPPORT\r
fooo=mooo&pooo=clue&doo=%20%20%20++++
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
52
</errorcode>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
[insert full protocol verifiction dump here]
</data>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
[insert full protocol verifiction dump here]
</data>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
28
</errorcode>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
------------------------------c3b2ef7f0bb8--\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
77
</errorcode>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Client-side
<client>
53
</errorcode>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
Accept: */*\r
\r
</protocol>
-<file name="log/jar31.txt" mode=text>
+<file name="log/jar31.txt" mode="text">
# Netscape HTTP Cookie File
# http://curlm.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
127.0.0.1 FALSE /we/want/ FALSE 1391255787 nodomain value
</file>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
Content-Type: text/html
Funny-head: yesyes
-<foo>
+-foo-
</data>
</reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
012345678
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
</info>
# Server-side
<reply>
-<data nocheck=1>
+<data nocheck="1">
HTTP/1.0 200 Mooo
Date: Mon, 13 Nov 2000 13:41:09 GMT
Server: myown/1.0
download on.
</file>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
------------------------------24e78000bd32--\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
26
</errorcode>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
------------------------------7c633d5c27ce--\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
Cookie: empty=; mooo=indeed\r
\r
</protocol>
-<file name="log/jar46" mode=text>
+<file name="log/jar46" mode="text">
# Netscape HTTP Cookie File
# http://curlm.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
127.0.0.1 FALSE /want/ FALSE 0 simplyhuge zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
</file>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
-<foo> within foo </foo>
+-foo- within foo -!foo-
</data>
</reply>
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply name="1">
Content-Type: text/html
Funny-head: yesyes
-<foo>
+-foo-
</data>
</reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply name="1">
3
</errorcode>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
# Verify data after the test has been "shot"
<verify>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
</reply>
100
</errorcode>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
</reply>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
<data1>
.host.foo.com TRUE / FALSE 1170330987 test5 five
</file>
</verify>
+</testcase>
+<testcase>
# Server-side
<reply>
</reply>
6
</errorcode>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
this is what we post to the silly web server
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
disable
</valgrind>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
-<data mode=text>
+<data mode="text">
HTTP/1.1 200 OK swsclose\r
Date: Thu, 09 Nov 2010 14:49:00 GMT\r
Server: yes\r
\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
42
</errorcode>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
#
# Verify data after the test has been "shot"
<verify>
-<stdout mode=text>
+<stdout mode="text">
0: Sun, 06 Nov 1994 08:49:37 GMT => 784111777
1: Sunday, 06-Nov-94 08:49:37 GMT => 784111777
2: Sun Nov 6 08:49:37 1994 => 784111777
# for this kind of things.
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
Content-Type: text/html
Funny-head: yesyes
-<foo>
+-foo-
</data>
</reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
#
# Server-side
<reply>
-<data nocheck=1>
+<data nocheck="1">
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
hello
</stdout>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
#
# Server-side
<reply>
-<data nocheck=1>
+<data nocheck="1">
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Proxy-Connection: Keep-Alive\r
\r
</protocol>
-<stdout mode=text>
+<stdout mode="text">
hello
</stdout>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
3
</errorcode>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
upload this
</upload>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
upload this
</upload>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
QUIT\r
</protocol>
</verify>
+</testcase>
+<testcase>
<reply>
<data mode="text">
HTTP/1.1 404 Badness
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<reply>
<data mode="text">
HTTP/1.1 404 Badness
\r
</protocol>
</verify>
+</testcase>
+<testcase>
#
# Server-side
<reply>
Content-Type: text/html
Funny-head: yesyes
-<foo>
+-foo-
</data>
</reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
PASS curl_by_daniel@haxx.se\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
</info>
# Server-side
<reply>
-<data nocheck=1>
+<data nocheck="1">
HTTP/1.1 200 OK swsclose
Funny-head: yesyes
Content-Type: text/html; charset=ISO-8859-4
# Verify data after the test has been "shot"
<verify>
-<stdout mode=text>
+<stdout mode="text">
text/html; charset=ISO-8859-4
</stdout>
<strip>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
a few bytes
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
Host: www.host.foo.com\r
\r
</protocol>
-<file name="log/jar61.txt" mode=text>
+<file name="log/jar61.txt" mode="text">
# Netscape HTTP Cookie File
# http://curlm.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
.foo.com TRUE /moo TRUE 0 test3 maybe
</file>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
# Server-side
<reply>
-# no <data> in this test since we have NTLM from the start
+<!-- no <data> in this test since we have NTLM from the start
+
+This is supposed to be returned when the server gets a first
+Authorization: NTLM line passed-in from the client -->
-# This is supposed to be returned when the server gets a first
-# Authorization: NTLM line passed-in from the client
<data1001>
HTTP/1.1 401 Now gimme that second request of crap\r
Server: Microsoft-IIS/5.0\r
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
</file>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
------------------------------9ef8d6205763--\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
Host: host.NOT_DISCLOSED.se\r
\r
</protocol>
-<file name="log/jar73.txt" mode=text>
+<file name="log/jar73.txt" mode="text">
# Netscape HTTP Cookie File
# http://curlm.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.
.NOT_DISCLOSED.se TRUE / FALSE 0 IPCZQX01af0fca5c 000010008168c200d25dfc4b
</file>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
#
# Server-side
<reply>
-<data nocheck=1>
+<data nocheck="1">
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Type: text/html
Funny-head: yesyes
-<foo>
+-foo-
</data>
<data1>
HTTP/1.0 200 OK
<name>
HTTP, urlglob {}-retrieval and -o #[num] usage
</name>
- <command option=no-output>
+ <command option="no-output">
"http://%HOSTIP:%HTTPPORT/{74,740001}" -o "log/dumpit#1.dump"
</command>
</client>
crap data
</file>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
<name>
HTTP, urlglob retrieval with bad range
</name>
- <command option=no-output>
+ <command option="no-output">
"http://%HOSTIP:%HTTPPORT/[1-1]" -o "log/weee#1.dump" --stderr -
</command>
</client>
<errorcode>
3
</errorcode>
-<stdout mode=text>
+<stdout mode="text">
curl: (3) [globbing] error: bad range specification after pos 24
</stdout>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FAILURE
<name>
HTTP, -O with no file name part in the URL
</name>
- <command option=no-output>
+ <command option="no-output">
http://%HOSTIP:%HTTPPORT/76/ -O
</command>
</client>
23
</errorcode>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
Connection: close
Content-Type: text/html
-<foo>
+-foo-
</data>
</reply>
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
Content-Type: text/html
Funny-head: yesyes
-<foo>
+-foo-
</data>
<datacheck>
HTTP/1.1 200 OK
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
FTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
#
# Server-side
<reply>
-<data nocheck=1>
+<data nocheck="1">
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Type: text/html
Funny-head: yesyes
-<foo>
+-foo-
</data>
<data1>
HTTP/1.0 200 OK
<name>
HTTP, urlglob []-retrieval and -o #[num] usage
</name>
- <command option=no-output>
+ <command option="no-output">
"http://%HOSTIP:%HTTPPORT/[860001-860003]" -o "log/dumpit#1.dump"
</command>
</client>
crap data
</file>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
[] range
<name>
urlglob with bad -o #[num] usage
</name>
- <command option=no-output>
+ <command option="no-output">
"http://%HOSTIP:%HTTPPORT/[870001-870003]" -o "log/dumpit#2.dump"
</command>
</client>
2
</errorcode>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
four is the number of lines
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
# Server-side
<reply>
-# no <data> in this test since we have NTLM from the start
+<!-- no <data> in this test since we have NTLM from the start
+
+This is supposed to be returned when the server gets a first
+Authorization: NTLM line passed-in from the client -->
-# This is supposed to be returned when the server gets a first
-# Authorization: NTLM line passed-in from the client
<data1001>
HTTP/1.1 401 Now gimme that second request of crap\r
Server: Microsoft-IIS/5.0\r
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
------------------------------9ef8d6205763--\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTPS
#
# Server-side
<reply>
-<data nocheck=1>
+<data nocheck="1">
HTTP/1.1 407 Needs proxy authentication
Server: test-server/fake swsclose yesyes
Proxy-Authenticate: Basic "oh please"
\r
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
<strip>
^User-Agent:.*
</strip>
-<protocol nonewline=yes>
+<protocol nonewline="yes">
CONNECT 127.0.0.1:%HTTPPORT HTTP/1.0\r
User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3\r
Host: 127.0.0.1:%HTTPPORT\r
datatopost=ohthatsfunyesyes
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
<strip>
^User-Agent:.*
</strip>
-<protocol nonewline=yes>
+<protocol nonewline="yes">
POST /97 HTTP/1.1\r
Host: 127.0.0.1:%HTTPPORT\r
Accept: */*\r
hejsanallabarn
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
data on stdin
</protocol>
</verify>
+</testcase>
+<testcase>
<info>
<keywords>
HTTP
\r
</protocol>
</verify>
+</testcase>
enum {
STATE_OUTSIDE,
+ STATE_OUTER,
STATE_INMAIN,
STATE_INSUB,
STATE_ILLEGAL
cmain[0]=0; /* no main anymore */
display=0;
}
+ else if(state == STATE_OUTER) {
+ /* this is the end of the outermost file section */
+ state--;
+ }
}
else if(!display) {
/* this is the beginning of a section */
*end = 0;
switch(state) {
case STATE_OUTSIDE:
+ /* Ignore the outermost <testcase> element */
+ state = STATE_OUTER;
+ break;
+ case STATE_OUTER:
strcpy(cmain, ptr);
state = STATE_INMAIN;
break;
show(("* (%d bytes) %s\n", stringlen, buffer));
display = 1; /* start displaying */
}
+ else if ((*cmain == '!') || (*csub == '!')) {
+ /* This is just a comment, not a new section */
+ state--;
+ }
else {
show(("%d (%s/%s): %s\n", state, cmain, csub, buffer));
display = 0; /* no display */