"^tests/data/test",
);
-my @mixed_eol = (
- "^tests/data/test",
-);
-
my @need_crlf = (
"\\.(bat|sln)\$",
);
my $eol = eol_detect($content);
- if($eol eq "" &&
- !fn_match($filename, @mixed_eol)) {
+ if($eol eq "") {
push @err, "content: has mixed EOL types";
}
}
if($eol ne "lf" && $content ne "" &&
- !fn_match($filename, @need_crlf) &&
- !fn_match($filename, @mixed_eol)) {
+ !fn_match($filename, @need_crlf)) {
push @err, "content: must use LF EOL for this file type";
}
with parallel testing, it is difficult to associate the logs with the specific
test being run.
+## `-w`
+
+Verify test data.
+
## `-vc \<curl\>`
Provide a path to a custom curl binary to run when verifying that the servers
## Whitespace
+To force CRLF newline, add this macro to the end of the line:
+
+ %CR - carriage return
+
To add significant whitespace characters at the end of the line, or to empty
lines:
"${CMAKE_CURRENT_SOURCE_DIR}/configurehelp.pm.in"
"${CMAKE_CURRENT_BINARY_DIR}/configurehelp.pm" @ONLY)
-curl_add_runtests(tests "") # Avoid 'test', which is a reserved target name in CMake
-curl_add_runtests(test-quiet "-a -s")
-curl_add_runtests(test-am "-a -am")
-curl_add_runtests(test-full "-a -p -r")
+curl_add_runtests(tests "-a -w") # Avoid 'test', which is a reserved target name in CMake
+curl_add_runtests(test-quiet "-a -w -s")
+curl_add_runtests(test-am "-a -w -am")
+curl_add_runtests(test-full "-a -w -p -r")
# ~flaky means that it ignores results of tests using the flaky keyword
-curl_add_runtests(test-nonflaky "-a -p ~flaky ~timing-dependent")
+curl_add_runtests(test-nonflaky "-a -w -p ~flaky ~timing-dependent")
curl_add_runtests(test-ci "-a -p ~flaky ~timing-dependent -r --retry=5 -j20 --buildinfo")
-curl_add_runtests(test-torture "-a -t -j20")
-curl_add_runtests(test-event "-a -e")
+curl_add_runtests(test-torture "-a -w -t -j20")
+curl_add_runtests(test-event "-a -w -e")
curl_add_pytests(curl-pytest "-n auto")
curl_add_pytests(curl-pytest-ci "-n auto -v")
endif
TEST = srcdir=$(srcdir) @PERL@ $(PERLFLAGS) $(srcdir)/runtests.pl $(TEST_COMMON)
-TEST_Q = -a -s
-TEST_AM = -a -am
-TEST_F = -a -p -r
-TEST_T = -a -t -j20
-TEST_E = -a -e
+TEST_Q = -a -w -s
+TEST_AM = -a -w -am
+TEST_F = -a -w -p -r
+TEST_T = -a -w -t -j20
+TEST_E = -a -w -e
# ~<keyword> means that it will run all tests matching the keyword, but will
# ignore their results (since these ones are likely to fail for no good reason)
-TEST_NF = -a -p ~flaky ~timing-dependent
+TEST_NF = -a -w -p ~flaky ~timing-dependent
-# special CI target derived from nonflaky with CI-specific flags
-TEST_CI = $(TEST_NF) -r --retry=5 -j20 --buildinfo
+# special target for CI use
+TEST_CI = -a -p ~flaky ~timing-dependent -r --retry=5 -j20 --buildinfo
PYTEST = pytest
endif
# then this is returned when we get proxy-auth
<data1000>
-HTTP/1.1 200 OK swsbounce\r
+HTTP/1.1 200 OK swsbounce%CR
Server: no
-\r
+%CR
Nice proxy auth sir!
</data1000>
<datacheck>
-HTTP/1.1 407 Authorization Required to proxy me my dear\r
-Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==\r
-Transfer-Encoding: chunked\r
-\r
-HTTP/1.1 200 Things are fine in proxy land\r
-Server: Microsoft-IIS/5.0\r
-Content-Type: text/html; charset=iso-8859-1\r
-\r
+HTTP/1.1 407 Authorization Required to proxy me my dear%CR
+Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==%CR
+Transfer-Encoding: chunked%CR
+%CR
+HTTP/1.1 200 Things are fine in proxy land%CR
+Server: Microsoft-IIS/5.0%CR
+Content-Type: text/html; charset=iso-8859-1%CR
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Content-Length: 7
# then this is returned when we get proxy-auth
<data1000>
-HTTP/1.1 200 OK swsbounce\r
+HTTP/1.1 200 OK swsbounce%CR
Server: no
-\r
+%CR
Nice proxy auth sir!
</data1000>
<datacheck>
-HTTP/1.1 407 Authorization Required to proxy me my dear swsclose\r
-Proxy-Authenticate: NTLM\r
-Content-Length: 16\r
-Connection: close\r
-\r
-HTTP/1.1 407 Authorization Required to proxy me my dear\r
-Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==\r
-Content-Length: 28\r
-\r
-HTTP/1.1 200 Things are fine in proxy land\r
-Server: Microsoft-IIS/5.0\r
-Content-Type: text/html; charset=iso-8859-1\r
-\r
+HTTP/1.1 407 Authorization Required to proxy me my dear swsclose%CR
+Proxy-Authenticate: NTLM%CR
+Content-Length: 16%CR
+Connection: close%CR
+%CR
+HTTP/1.1 407 Authorization Required to proxy me my dear%CR
+Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==%CR
+Content-Length: 28%CR
+%CR
+HTTP/1.1 200 Things are fine in proxy land%CR
+Server: Microsoft-IIS/5.0%CR
+Content-Type: text/html; charset=iso-8859-1%CR
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Content-Length: 7
012345678
012345678
012345678
-HTTP/1.1 416 Invalid range\r
-Connection: close\r
-Content-Length: 0\r
-\r
+HTTP/1.1 416 Invalid range%CR
+Connection: close%CR
+Content-Length: 0%CR
+%CR
</datacheck>
</reply>
012345678
012345678
012345678
-HTTP/1.1 200 OK\r
-Connection: close\r
-Content-Length: 100\r
-Content-Type: text/plain\r
-\r
+HTTP/1.1 200 OK%CR
+Connection: close%CR
+Content-Length: 100%CR
+Content-Type: text/plain%CR
+%CR
</datacheck>
</reply>
012345678
012345678
012345678
-HTTP/1.1 206 Partial Content\r
-Date: Mon, 13 Nov 2007 13:41:09 GMT\r
-Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT\r
-Accept-Ranges: bytes\r
-Content-Length: 60\r
-Content-Range: bytes 40-99/100\r
-\r
+HTTP/1.1 206 Partial Content%CR
+Date: Mon, 13 Nov 2007 13:41:09 GMT%CR
+Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT%CR
+Accept-Ranges: bytes%CR
+Content-Length: 60%CR
+Content-Range: bytes 40-99/100%CR
+%CR
012345678
012345678
012345678
^(Content-Type: multipart/form-data;|------------).*
</strip>
<protocol>
-POST /we/want/%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Content-Length: 434\r
-Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763\r
-\r
-------------------------------9ef8d6205763\r
-Content-Disposition: form-data; name="name"\r
-\r
-daniel\r
-------------------------------9ef8d6205763\r
-Content-Disposition: form-data; name="tool"\r
-\r
-curl\r
-------------------------------9ef8d6205763\r
-Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER.txt"\r
-Content-Type: text/plain\r
-\r
+POST /we/want/%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Content-Length: 434%CR
+Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763%CR
+%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: form-data; name="name"%CR
+%CR
+daniel%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: form-data; name="tool"%CR
+%CR
+curl%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER.txt"%CR
+Content-Type: text/plain%CR
+%CR
foo-
This is a moo-
bar
-\r
-------------------------------9ef8d6205763--\r
-POST /we/want/data/%TESTNUMBER0002.txt?coolsite=yes HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Content-Length: 434\r
-Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763\r
-\r
-------------------------------9ef8d6205763\r
-Content-Disposition: form-data; name="name"\r
-\r
-daniel\r
-------------------------------9ef8d6205763\r
-Content-Disposition: form-data; name="tool"\r
-\r
-curl\r
-------------------------------9ef8d6205763\r
-Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER.txt"\r
-Content-Type: text/plain\r
-\r
+%CR
+------------------------------9ef8d6205763--%CR
+POST /we/want/data/%TESTNUMBER0002.txt?coolsite=yes HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Content-Length: 434%CR
+Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763%CR
+%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: form-data; name="name"%CR
+%CR
+daniel%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: form-data; name="tool"%CR
+%CR
+curl%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER.txt"%CR
+Content-Type: text/plain%CR
+%CR
foo-
This is a moo-
bar
-\r
-------------------------------9ef8d6205763--\r
+%CR
+------------------------------9ef8d6205763--%CR
</protocol>
</verify>
</testcase>
# Verify data after the test has been "shot"
<verify>
<protocol>
-PUT /%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Content-Length: 78\r
-\r
+PUT /%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Content-Length: 78%CR
+%CR
Weird
file
to
the
PUT
feature
-USER anonymous\r
-PASS ftp@example.com\r
-PWD\r
-EPSV\r
-TYPE I\r
-STOR %TESTNUMBER\r
-QUIT\r
+USER anonymous%CR
+PASS ftp@example.com%CR
+PWD%CR
+EPSV%CR
+TYPE I%CR
+STOR %TESTNUMBER%CR
+QUIT%CR
</protocol>
<upload>
Weird
# then this is returned when we get proxy-auth
<connect1000>
-HTTP/1.1 200 OK\r
+HTTP/1.1 200 OK%CR
Server: no
-\r
+%CR
</connect1000>
<datacheck>
-HTTP/1.1 407 Authorization Required to proxy me my dear\r
-Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345"\r
-Content-Length: 35701\r
-X-tra-long-header: %repeat[16080 x a]%\r
-\r
-HTTP/1.1 200 OK\r
+HTTP/1.1 407 Authorization Required to proxy me my dear%CR
+Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345"%CR
+Content-Length: 35701%CR
+X-tra-long-header: %repeat[16080 x a]%%CR
+%CR
+HTTP/1.1 200 OK%CR
Server: no
-\r
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Content-Length: 7
# this is returned first since we get no proxy-auth
<connect>
-HTTP/1.1 407 Authorization Required to proxy me my dear\r
-Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345"\r
-Transfer-Encoding: chunked\r
-X-tra-long-header: %repeat[16080 x a]%\r
-\r
-9c41\r
+HTTP/1.1 407 Authorization Required to proxy me my dear%CR
+Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345"%CR
+Transfer-Encoding: chunked%CR
+X-tra-long-header: %repeat[16080 x a]%%CR
+%CR
+9c41%CR
%repeat[800 x And you should ignore this data. aaaaaaaaaaaaaaa %0a]%
-\r
-0\r
-\r
+%CR
+0%CR
+%CR
</connect>
# this is returned when we get a GET!
# then this is returned when we get proxy-auth
<connect1000>
-HTTP/1.1 200 OK\r
+HTTP/1.1 200 OK%CR
Server: no
-\r
+%CR
</connect1000>
<datacheck>
-HTTP/1.1 407 Authorization Required to proxy me my dear\r
-Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345"\r
-Transfer-Encoding: chunked\r
-X-tra-long-header: %repeat[16080 x a]%\r
-\r
-HTTP/1.1 200 OK\r
+HTTP/1.1 407 Authorization Required to proxy me my dear%CR
+Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345"%CR
+Transfer-Encoding: chunked%CR
+X-tra-long-header: %repeat[16080 x a]%%CR
+%CR
+HTTP/1.1 200 OK%CR
Server: no
-\r
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Content-Length: 7
</protocol>
<stdout>
-HTTP/1.1 200 OK\r
-HTTP/1.1 200 OK\r
-Server: thebest/1.0\r
-Server: thebest/1.0\r
-Content-Type: text/plain\r
-Content-Type: text/plain\r
-Content-Length: 6\r
-Content-Length: 6\r
-\r
-\r
+HTTP/1.1 200 OK%CR
+HTTP/1.1 200 OK%CR
+Server: thebest/1.0%CR
+Server: thebest/1.0%CR
+Content-Type: text/plain%CR
+Content-Type: text/plain%CR
+Content-Length: 6%CR
+Content-Length: 6%CR
+%CR
+%CR
first
-HTTP/1.1 200 OK\r
-HTTP/1.1 200 OK\r
-Server: thebest/1.0\r
-Server: thebest/1.0\r
-Content-Type: text/plain\r
-Content-Type: text/plain\r
-Content-Length: 7\r
-Content-Length: 7\r
-\r
-\r
+HTTP/1.1 200 OK%CR
+HTTP/1.1 200 OK%CR
+Server: thebest/1.0%CR
+Server: thebest/1.0%CR
+Content-Type: text/plain%CR
+Content-Type: text/plain%CR
+Content-Length: 7%CR
+Content-Length: 7%CR
+%CR
+%CR
second
</stdout>
</verify>
# Verify data after the test has been "shot"
<verify>
<protocol>
-PUT /bzz/%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Transfer-Encoding: chunked\r
-Expect: 100-continue\r
-\r
-13\r
+PUT /bzz/%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Transfer-Encoding: chunked%CR
+Expect: 100-continue%CR
+%CR
+13%CR
more than one byte
-\r
-0\r
-\r
+%CR
+0%CR
+%CR
</protocol>
</verify>
</testcase>
25
</errorcode>
<protocol>
-PUT /%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Transfer-Encoding: chunked\r
-Expect: 100-continue\r
-\r
-7a\r
+PUT /%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Transfer-Encoding: chunked%CR
+Expect: 100-continue%CR
+%CR
+7a%CR
This is data we upload with PUT
it comes from stdin so MUST be sent
with chunked encoding
which is impossible in HTTP/1.0
-\r
-0\r
-\r
+%CR
+0%CR
+%CR
</protocol>
</verify>
</testcase>
25
</errorcode>
<protocol>
-PUT /%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Transfer-Encoding: chunked\r
-Expect: 100-continue\r
-\r
-7a\r
+PUT /%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Transfer-Encoding: chunked%CR
+Expect: 100-continue%CR
+%CR
+7a%CR
This is data we upload with PUT
it comes from stdin so MUST be sent
with chunked encoding
which is impossible in HTTP/1.0
-\r
-0\r
-\r
+%CR
+0%CR
+%CR
</protocol>
</verify>
</testcase>
# Server-side
<reply>
<data>
-HTTP/1.1 200 OK\r
-Date: Mon, 29 Nov 2004 21:56:53 GMT\r
-Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29\r
-Vary: Accept-Encoding\r
-Content-Type: text/html; charset=ISO-8859-1\r
-Transfer-Encoding: deflate, chunked\r
-\r
-519\r
+HTTP/1.1 200 OK%CR
+Date: Mon, 29 Nov 2004 21:56:53 GMT%CR
+Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29%CR
+Vary: Accept-Encoding%CR
+Content-Type: text/html; charset=ISO-8859-1%CR
+Transfer-Encoding: deflate, chunked%CR
+%CR
+519%CR
%hex[%78%9c%dc%58%db%6e%e3%36%10%7d%37%90%7f%60%fd%d4%02%b6%6e%b6%13%39%70%b4%28%72%d9%04%cd%36%c1%da%05%ba%4f%06%2d%d1%36%1b%49%14%48%ca%b9%3c%f4%db%3b%94%28%89%b1%1c%af%77%83%be%04%48%62%72%e6%9c%c3%e1%0c%49%93%99%7c%7a%4a%62%b4%21%5c%50%96%9e%75%5d%cb%e9%22%92%86%2c%a2%e9%ea%ac%7b%33%bd%eb%fb%fe%68%dc%77%bb%9f%82%ce%e4%97%8b%bb%f3%d9%b7%fb%4b%94%71%f6%0f%09%65%3f%a6%42%02%10%4d%bf%4d%67%97%5f%50%77%2d%65%76%6a%db%4b%4e%c4%3a%21%58%5a%29%91%f6%02%87%0f%24%8d%ec%65%d2%d7%3c%d1%77%ac%a1%15%c9%a8%0b%a2%5b%5a%41%07%a1%ca%a6%da%4d%6f%4e%a3%c0%3d%76%bd%89%6d%18%4a%44%84%25%99%e3%28%22%80%18%8f%fd%be%e3%f7%3d%17%39%c3%53%c7%3d%f5%c6%13%db%f0%1b%84%3c%53%1f%51%e0%39%ce%b0%ef%3a%7d%d7%47%8e%77%ea%c1%cf%40%53%2a%c4%ab%38%52%9c%90%b9%58%33%2e%83%30%e7%71%1d%8e%61%6f%e3%97%79%1c%17%70%84%d3%08%c5%74%d1%a6%16%10%1d%1e%11%a1%96%3a%67%49%52%52%52%82%24%63%b5%00%c7%fc%19%2d%19%47%61%4c%49%2a%fb%82%46%04%fd%f5%f5%16%49%8e%53%b1%84%8a%5a%30%8b%46%c8%50%de%19%0c%a2%02%e1%72%04%a5%5a%a9%70%55%df%25%8d%89%38%ea%e4%42%75%d4%18%e2%39%95%f8%c9%42%37%12%89%3c%cb%40%5f%a0%eb%d9%ec%be%57%fc%9d%f6%d0%15%b4%8f%3a%57%45%fb%e2%e6%7c%d6%43%b3%cb%db%3f%2f%e1%f3%f6%e2%77%80%5d%dd%dc%5e%f6%8a%e1%3f%df%dd%5f%5f%7e%85%36%0c%f0%48%62%88%a9%94%ea%67%4c%c8%9e%6e%e6%d0]hex%
%hex[%19%7b%a0%44%14%da%28%cf%62%86%23%18%02%96%5a%9e%90%a8%99%75%0f%65%58%88%47%c6%23%d5%84%c8%d2%3c%59%14%f6%e9%f4%f6%a8%13%12%2e%e9%92%86%50%57%30%fd%41%38%f8%98%28%43%81%6a%3c%c1%08%c5%b4%20%1b%19%7b%24%9c%44%47%9d%c5%73%95%a4%1e%92%6b%f2%66%c6%ab%b2%58%47%9d%d9%1a%a8%08%c3%ef%82%a6%6a%33%09%48%6d%9d%6a%95%60%06%9b%0e%79%ce%51%27%c6%e9%2a%c7%2b%22%8a%18%48%ba%a1%9c%a5%09%0c%20%40%47%97%d0%58%1b%1b%2a%71%4c%e5%f3%5c%84%8c%93%60%74%e2%0f%ad%d1%c9%c4%de%b2%6f%81%33%c2%43%90%0c%06%96%7b%6c%60%2b%f3%16%1a%e6%f3%00%7b%6d%6c%20%0b%93%5e%d7%2c%cb%63%cc%9b%b1%8e%47%63%88%61%08%cb%79%db%d3%22%54%03%ba%03%cb%77%5f%11%5e%87%62%38%ca%60%9c%d1%2b%b4%11%0e%c7%c5%b9%e1%5b%23%67%62%eb%8e%e9%99%87%2c%07%5d%cf%ad%bc%da%f0]hex%
%hex[%53%0e%e2%0f%6a%8c%31%80%c8%17%22%e4%34%93%70%44%8a%60%a0%4e%87%d7%a6%12%06%a5%4f%c3%f5%5c%ed%e5%e0%82%2c%71%1e%cb%89%6d%1a%4b%18%d4%7f%5e%1d%60%19%94%3d%d8%79%68%56%27%a5%ad%d6%8b%3d%b1%5b%ac%46%6c%cd%12%f2%b6%10%2c%60%ca%4b%15%75%78%da%26%43%eb%d6%02%8d%a6%5c%bd%1c%2e%07%60%ad%a4%68%8d%c8%e2%c5%3b%5c%04%c0%5a%44%d1%1a%91%17%9a%1d%2e%02%60%2d%a2%68%8d%48%b8%86%3d%46%62%b6%3a%5c%aa%a6%68%c1%46%a2%91%e5%59%72%b8%20%80%b5%94%a2%35%22%11%59%1c%2e%02%60%2d%a2%68%8d%08%13%4f%87%8b%00%58%8b%28%9a%51%2f%11%a9%f3%f2%07%6a%56%12%aa%ba%69%ba%b1%cc%73%0e%69%13%24%d0%eb%b7%ea%1a%85%d9%88%1f%28%c9%46%54%c5%d8%08%43%44%dd%1c%0e%57%51%68%2d%53%10%1b%9d%84%72%ce%f8%e1%4a%25%5e%6b%69%b2%59%d7%84%05%55%ad%a0%59%7a%62]hex%
%hex[%87%1c%a4%e0%cb%cd%cc%fe%1b%9d%c3%e9%01%29%a3%79%82%6e%4b%c7%c4%ae%10%1a%af%be%a7%e4%9c%93%98%d4%99%6b%99%e7%fa%fe%16%9c%58%ae%67%c1%05%e9%0d%f7%1b%6c%75%af%3a%39%76%fc%51%8b%58%5d%b0%da%1c%75%2f%da%7d%71%da%05%2c%e7%62%ef%9a%cc%04%ce%51%02%13%5e%33%39%97%6b%f8%aa%86%9c%b5%4c%25%12%e7%12%6e%32%a2%0e%a9%ec%57%dd%da%a0%4f%60%9c%52%12%a3%a9%24%29%7c%c3%af%26%b6%e9%6c%51%a0%4a%bb%eb%fe%ef%02%af%22%a2%8a%6c%20%5b%74%ce%62%12%dc%3d%a6%84%d7%b8%c2%54%45%6a%9b%a1%56%bd%6a%09%ab%2f%78%4e%13%9a%62%69%ce%4e%72%b8%21%14%b5%81%82%d6%9d%96%d7%f3%8e%f7%b9%07%7b%b9%fb%9c%ae%ef%ef%e5%ba%7b%c7%85%a5%b1%3f%ea%bd%6e%f7%78%b8%cf%3d%de%4b%f6%c7%7b%bd%ce%5e%b7%3b%fa%4e%dc%df%09%6c%7f%64%83%d6%d8%e5%fd%6e%bb%fc%b0%26%32%78%32%c1%43%0c%ae%a3%b5%4e%6d%7c%46%f2%39%23%67%5d%4e%42%78%1d%28%9b%7a%49%d5%8b%b2%c1%99%1b%d9%51%43%ed%72%ec%24%ea%7b%0b%b8%4f%86%aa%18%3b%5d%3b%99%c6%e3%ac%45%dd%7e%b8%bd%c5%95%54%aa%0d%05%76%b8%b3%a3%5f%f5%6d%ea%b7%9d%5a%25%b6%de%69%0d%e2%ed%bc%b1%e2%de%86%e3%ff%2f%69%ce%4f%67%6c%38%78%67%c6%d4%fb%ea%e3%27%ca%f5%06%23%f7%1d%99%7a%81%a7%d8%c7%cf%d2%c0%73%86%27%ef%c8%d2%35%a1%49%84%e3%8f%9f%a8%e1%70%34%f0%de%91%a8%b0%0f%4f%7d%f1%33%79%32%2c%fa%ac%af%ff%2b%14%74%fe%03%00%00%ff%ff%82%33%11%a3%63%00%00%00%00%ff%ff%03%00%dd%38%8e%d1%0d]hex%
-0\r
-\r
+0%CR
+%CR
</data>
<datacheck>
-HTTP/1.1 200 OK\r
-Date: Mon, 29 Nov 2004 21:56:53 GMT\r
-Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29\r
-Vary: Accept-Encoding\r
-Content-Type: text/html; charset=ISO-8859-1\r
-Transfer-Encoding: deflate, chunked\r
-\r
+HTTP/1.1 200 OK%CR
+Date: Mon, 29 Nov 2004 21:56:53 GMT%CR
+Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29%CR
+Vary: Accept-Encoding%CR
+Content-Type: text/html; charset=ISO-8859-1%CR
+Transfer-Encoding: deflate, chunked%CR
+%CR
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE project-listing SYSTEM "http://freshmeat.net/backend/fm-projects-0.4.dtd">
<project-listing>
<projectname_short>curl</projectname_short>
<projectname_full>curl and libcurl</projectname_full>
<desc_short>Command line tool and library for client-side URL transfers.</desc_short>
- <desc_full>curl and libcurl is a tool for transferring files\r
-using URL syntax. It supports HTTP, HTTPS, FTP,\r
-FTPS, DICT, TELNET, LDAP, FILE, and GOPHER, as\r
-well as HTTP-post, HTTP-put, cookies, FTP upload,\r
-resumed transfers, passwords, portnumbers, SSL\r
-certificates, Kerberos, and proxies. It is powered\r
-by libcurl, the client-side URL transfer library.\r
-There are bindings to libcurl for over 20\r
-languages and environments.\r
+ <desc_full>curl and libcurl is a tool for transferring files%CR
+using URL syntax. It supports HTTP, HTTPS, FTP,%CR
+FTPS, DICT, TELNET, LDAP, FILE, and GOPHER, as%CR
+well as HTTP-post, HTTP-put, cookies, FTP upload,%CR
+resumed transfers, passwords, portnumbers, SSL%CR
+certificates, Kerberos, and proxies. It is powered%CR
+by libcurl, the client-side URL transfer library.%CR
+There are bindings to libcurl for over 20%CR
+languages and environments.%CR
</desc_full>
<vitality_score>5784.57</vitality_score>
<vitality_percent>3.16</vitality_percent>
^(Content-Type: multipart/form-data;|Content-Type: multipart/mixed; boundary=|-------).*
</strip>
<protocol>
-POST /we/want/%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Content-Length: 1324\r
-Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32\r
-\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="file"; filename="faker,and;.txt"\r
-Content-Type: mo/foo\r
-\r
+POST /we/want/%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Content-Length: 1324%CR
+Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32%CR
+%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="file"; filename="faker,and;.txt"%CR
+Content-Type: mo/foo%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="file2"; filename="test%TESTNUMBER,and;.txt"\r
-Content-Type: text/plain\r
-\r
+%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="file2"; filename="test%TESTNUMBER,and;.txt"%CR
+Content-Type: text/plain%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="file3"\r
-Content-Type: multipart/mixed; boundary=----------------------------7f0e85a48b0b\r
-\r
-Content-Disposition: attachment; filename="test%TESTNUMBER,and;.txt"\r
-Content-Type: m/f\r
-\r
+%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="file3"%CR
+Content-Type: multipart/mixed; boundary=----------------------------7f0e85a48b0b%CR
+%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER,and;.txt"%CR
+Content-Type: m/f%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-Content-Disposition: attachment; filename="test%TESTNUMBER,and;.txt"\r
-Content-Type: text/plain\r
-\r
+%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER,and;.txt"%CR
+Content-Type: text/plain%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-\r
-Content-Disposition: form-data; name="a"\r
-\r
-{"field1":"value1","field2":"value2"}\r
-Content-Disposition: form-data; name="b"; filename="param_b"\r
-Content-Type: text/foo; charset=utf-8\r
-\r
- \value1;type="whatever" \r
-------------------------------24e78000bd32--\r
+%CR
+%CR
+Content-Disposition: form-data; name="a"%CR
+%CR
+{"field1":"value1","field2":"value2"}%CR
+Content-Disposition: form-data; name="b"; filename="param_b"%CR
+Content-Type: text/foo; charset=utf-8%CR
+%CR
+ \value1;type="whatever" %CR
+------------------------------24e78000bd32--%CR
</protocol>
</verify>
</testcase>
^(Content-Type: multipart/form-data;|Content-Type: multipart/mixed; boundary=|-------).*
</strip>
<protocol>
-POST /we/want/%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Content-Length: 1006\r
-Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32\r
-\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER%22.txt"\r
-Content-Type: mo/foo\r
-\r
+POST /we/want/%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Content-Length: 1006%CR
+Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32%CR
+%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER%22.txt"%CR
+Content-Type: mo/foo%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="file2"; filename="test%TESTNUMBER%22.txt"\r
-Content-Type: text/plain\r
-\r
+%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="file2"; filename="test%TESTNUMBER%22.txt"%CR
+Content-Type: text/plain%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="file3"\r
-Content-Type: multipart/mixed; boundary=----------------------------7f0e85a48b0b\r
-\r
-Content-Disposition: attachment; filename="test%TESTNUMBER%22.txt"\r
-Content-Type: m/f\r
-\r
+%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="file3"%CR
+Content-Type: multipart/mixed; boundary=----------------------------7f0e85a48b0b%CR
+%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER%22.txt"%CR
+Content-Type: m/f%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-Content-Disposition: attachment; filename="test%TESTNUMBER%22.txt"\r
-Content-Type: text/plain\r
-\r
+%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER%22.txt"%CR
+Content-Type: text/plain%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-\r
-------------------------------24e78000bd32--\r
+%CR
+%CR
+------------------------------24e78000bd32--%CR
</protocol>
</verify>
</testcase>
^(Content-Type: multipart/form-data;|Content-Type: multipart/mixed; boundary=|-------).*
</strip>
<protocol>
-POST /we/want/%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Content-Length: 1002\r
-Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32\r
-\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER\".txt"\r
-Content-Type: mo/foo\r
-\r
+POST /we/want/%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Content-Length: 1002%CR
+Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32%CR
+%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER\".txt"%CR
+Content-Type: mo/foo%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="file2"; filename="test%TESTNUMBER\".txt"\r
-Content-Type: text/plain\r
-\r
+%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="file2"; filename="test%TESTNUMBER\".txt"%CR
+Content-Type: text/plain%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="file3"\r
-Content-Type: multipart/mixed; boundary=----------------------------7f0e85a48b0b\r
-\r
-Content-Disposition: attachment; filename="test%TESTNUMBER\".txt"\r
-Content-Type: m/f\r
-\r
+%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="file3"%CR
+Content-Type: multipart/mixed; boundary=----------------------------7f0e85a48b0b%CR
+%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER\".txt"%CR
+Content-Type: m/f%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-Content-Disposition: attachment; filename="test%TESTNUMBER\".txt"\r
-Content-Type: text/plain\r
-\r
+%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER\".txt"%CR
+Content-Type: text/plain%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-\r
-------------------------------24e78000bd32--\r
+%CR
+%CR
+------------------------------24e78000bd32--%CR
</protocol>
</verify>
</testcase>
^(Content-Type: multipart/form-data;|-------).*
</strip>
<protocol>
-POST /we/want/%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Content-Length: 1240\r
-Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32\r
-\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="name"\r
-\r
-daniel\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="tool"\r
-\r
-curl\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="str1"\r
-\r
-@literal\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="str2"\r
-\r
-<verbatim;type=xxx/yyy\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="file"; filename="fakerfile"\r
-Content-Type: moo/foobar\r
-\r
+POST /we/want/%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Content-Length: 1240%CR
+Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32%CR
+%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="name"%CR
+%CR
+daniel%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="tool"%CR
+%CR
+curl%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="str1"%CR
+%CR
+@literal%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="str2"%CR
+%CR
+<verbatim;type=xxx/yyy%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="file"; filename="fakerfile"%CR
+Content-Type: moo/foobar%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="file2"; filename="test%TESTNUMBER.txt"\r
-Content-Type: text/plain\r
-\r
+%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="file2"; filename="test%TESTNUMBER.txt"%CR
+Content-Type: text/plain%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="file3"; filename="f\\\\ak\\\\er,\\an\\d;.t\"xt"\r
-Content-Type: mo/foo\r
-\r
+%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="file3"; filename="f\\\\ak\\\\er,\\an\\d;.t\"xt"%CR
+Content-Type: mo/foo%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="file4"; filename="A\\AA\"\"\\\"ZZZ"\r
-Content-Type: text/plain\r
-\r
+%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="file4"; filename="A\\AA\"\"\\\"ZZZ"%CR
+Content-Type: text/plain%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-------------------------------24e78000bd32--\r
+%CR
+------------------------------24e78000bd32--%CR
</protocol>
</verify>
</testcase>
012345678
012345678
012345678
-HTTP/1.1 416 Invalid range\r
-Connection: close\r
-Content-Length: 0\r
-\r
+HTTP/1.1 416 Invalid range%CR
+Connection: close%CR
+Content-Length: 0%CR
+%CR
</datacheck>
</reply>
# Server-side
<reply>
<data nocheck="yes">
-HTTP/1.1 200 OK\r
-Date: Tue, 09 Nov 2010 14:49:00 GMT\r
-Server: test-server/\r
- fake\r
- folded\r
-Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT\r
-ETag: "21025-dc7-39462498"\r
-Content-Length: 6\r
-Connection: \r
- close\r
-\r
+HTTP/1.1 200 OK%CR
+Date: Tue, 09 Nov 2010 14:49:00 GMT%CR
+Server: test-server/%CR
+ fake%CR
+ folded%CR
+Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT%CR
+ETag: "21025-dc7-39462498"%CR
+Content-Length: 6%CR
+Connection: %CR
+ close%CR
+%CR
-foo-
</data>
</reply>
# Server-side
<reply>
<data>
-HTTP/1.1 200 OK\r
-Date: Mon, 29 Nov 2004 21:56:53 GMT\r
-Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29\r
-Vary: Accept-Encoding\r
-Content-Type: text/html; charset=ISO-8859-1\r
-Transfer-Encoding: gzip, chunked\r
-Content-Encoding: deflate\r
-\r
-522\r
+HTTP/1.1 200 OK%CR
+Date: Mon, 29 Nov 2004 21:56:53 GMT%CR
+Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29%CR
+Vary: Accept-Encoding%CR
+Content-Type: text/html; charset=ISO-8859-1%CR
+Transfer-Encoding: gzip, chunked%CR
+Content-Encoding: deflate%CR
+%CR
+522%CR
%hex[%1f%8b%08%00%07%81%b0%63%02%ff%01%0b%05%f4%fa%78%da%dd%58%db%6e%e3%36%10%7d%37%90%7f%60%fd%d4%02%b6%6e%b6%13%39%70%b4%28%72%d9%04%cd%36%c1%da%05%ba%4f%06%2d%d1%36%1b%49%14%48%ca%b9%3c%f4%db%3b%94%28%89%b1%1c%af%77%83%be%04%48%62%72%e6%9c%c3%e1%0c%49%93%99%7c%7a%4a%62%b4%21%5c%50%96%9e%75%5d%cb%e9%22%92%86%2c%a2%e9%ea%ac%7b%33%bd%eb%fb%fe%68%dc%77%bb%9f%82%ce%e4%97%8b%bb%f3%d9%b7%fb%4b%94%71%f6%0f%09%65%3f%a6%42%02%10%4d%bf%4d%67%97%5f%50%77%2d%65%76%6a%db%4b%4e%c4%3a%21%58%5a%29%91%f6%02%87%0f%24%8d%ec%65%d2%d7%3c%d1%77%ac%a1%15%c9%a8%0b%a2%5b%5a%41%07%a1%ca%a6%da%4d%6f%4e%a3%c0%3d%76%bd%89%6d%18%4a%44%84%25%99%e3%28%22%80%18%8f%fd%be%e3%f7%3d%17%39%c3%53%c7%3d%f5%c6%13%db%f0%1b%84%3c%53%1f%51%e0%39%ce%b0%ef%3a%7d%d7%47%8e%77%ea%c1%cf%40%53%2a%c4%ab%38%52%9c%90%b9%58%33%2e%83%30%e7%71%1d%8e%61%6f%e3%97%79%1c%17%70%84%d3%08%c5%74%d1%a6%16%10%1d%1e%11%a1%96%3a%67%49%52%52%52%82%24%63%b5%00%c7%fc%19%2d%19%47%61%4c%49%2a%fb%82%46%04%fd%f5%f5%16%49%8e%53%b1%84%8a%5a%30%8b%46%c8%50%de%19%0c%a2%02%e1%72%04%a5%5a%a9%70%55%df%25%8d%89%38%ea%e4%42%75%d4%18%e2%39%95%f8%c9%42%37%12%89%3c%cb%40%5f%a0%eb%d9%ec%be%57%fc%9d%f6%d0%15%b4%8f%3a%57%45%fb%e2%e6%7c%d6%43%b3%cb%db%3f%2f%e1%f3%f6%e2%77%80%5d%dd%dc%5e%f6%8a%e1%3f%df%dd%5f%5f%7e%85%36%0c%f0%48%62%88%a9%94%ea%67%4c%c8%9e%6e%e6%d0]hex%
%hex[%19%7b%a0%44%14%da%28%cf%62%86%23%18%02%96%5a%9e%90%a8%99%75%0f%65%58%88%47%c6%23%d5%84%c8%d2%3c%59%14%f6%e9%f4%f6%a8%13%12%2e%e9%92%86%50%57%30%fd%41%38%f8%98%28%43%81%6a%3c%c1%08%c5%b4%20%1b%19%7b%24%9c%44%47%9d%c5%73%95%a4%1e%92%6b%f2%66%c6%ab%b2%58%47%9d%d9%1a%a8%08%c3%ef%82%a6%6a%33%09%48%6d%9d%6a%95%60%06%9b%0e%79%ce%51%27%c6%e9%2a%c7%2b%22%8a%18%48%ba%a1%9c%a5%09%0c%20%40%47%97%d0%58%1b%1b%2a%71%4c%e5%f3%5c%84%8c%93%60%74%e2%0f%ad%d1%c9%c4%de%b2%6f%81%33%c2%43%90%0c%06%96%7b%6c%60%2b%f3%16%1a%e6%f3%00%7b%6d%6c%20%0b%93%5e%d7%2c%cb%63%cc%9b%b1%8e%47%63%88%61%08%cb%79%db%d3%22%54%03%ba%03%cb%77%5f%11%5e%87%62%38%ca%60%9c%d1%2b%b4%11%0e%c7%c5%b9%e1%5b%23%67%62%eb%8e%e9%99%87%2c%07%5d%cf%ad%bc%da%f0]hex%
%hex[%53%0e%e2%0f%6a%8c%31%80%c8%17%22%e4%34%93%70%44%8a%60%a0%4e%87%d7%a6%12%06%a5%4f%c3%f5%5c%ed%e5%e0%82%2c%71%1e%cb%89%6d%1a%4b%18%d4%7f%5e%1d%60%19%94%3d%d8%79%68%56%27%a5%ad%d6%8b%3d%b1%5b%ac%46%6c%cd%12%f2%b6%10%2c%60%ca%4b%15%75%78%da%26%43%eb%d6%02%8d%a6%5c%bd%1c%2e%07%60%ad%a4%68%8d%c8%e2%c5%3b%5c%04%c0%5a%44%d1%1a%91%17%9a%1d%2e%02%60%2d%a2%68%8d%48%b8%86%3d%46%62%b6%3a%5c%aa%a6%68%c1%46%a2%91%e5%59%72%b8%20%80%b5%94%a2%35%22%11%59%1c%2e%02%60%2d%a2%68%8d%08%13%4f%87%8b%00%58%8b%28%9a%51%2f%11%a9%f3%f2%07%6a%56%12%aa%ba%69%ba%b1%cc%73%0e%69%13%24%d0%eb%b7%ea%1a%85%d9%88%1f%28%c9%46%54%c5%d8%08%43%44%dd%1c%0e%57%51%68%2d%53%10%1b%9d%84%72%ce%f8%e1%4a%25%5e%6b%69%b2%59%d7%84%05%55%ad%a0%59%7a%62]hex%
%hex[%87%1c%a4%e0%cb%cd%cc%fe%1b%9d%c3%e9%01%29%a3%79%82%6e%4b%c7%c4%ae%10%1a%af%be%a7%e4%9c%93%98%d4%99%6b%99%e7%fa%fe%16%9c%58%ae%67%c1%05%e9%0d%f7%1b%6c%75%af%3a%39%76%fc%51%8b%58%5d%b0%da%1c%75%2f%da%7d%71%da%05%2c%e7%62%ef%9a%cc%04%ce%51%02%13%5e%33%39%97%6b%f8%aa%86%9c%b5%4c%25%12%e7%12%6e%32%a2%0e%a9%ec%57%dd%da%a0%4f%60%9c%52%12%a3%a9%24%29%7c%c3%af%26%b6%e9%6c%51%a0%4a%bb%eb%fe%ef%02%af%22%a2%8a%6c%20%5b%74%ce%62%12%dc%3d%a6%84%d7%b8%c2%54%45%6a%9b%a1%56%3d%61%5c%c9%38%4d%68%8a%a5%39%3b%c9%e1%86%50%d4%06]hex%
%hex[%5a%77%5a%5e%cf%3b%de%e7%1e%ec%e5%ee%73%ba%be%bf%97%eb%ee%1d%17%96%c6%fe%a8%f7%ba%dd%e3%e1%3e%f7%78%2f%d9%1f%ef%f5%3a%7b%dd%ee%e8%3b%71%7f%27%b0%fd%91%0d%5a%63%97%f7%bb%ed%f2%c3%9a%c8%e0%c9%04%0f%31%b8%8e%d6%3a%b5%f1%19%c9%e7%8c%9c%75%39%09%e1%75%a0%6c%ea%25%55%2f%ca%06%67%6e%64%47%0d%b5%cb%b1%93%a8%ef%2d%e0%3e%19%aa%62%ec%74%ed%64%1a%8f%b3%16%75%fb%e1%f6%16%57%52%a9%36%14%d8%e1%ce%8e%7e%d5%b7%a9%df%76%6a%95%d8%7a%a7%35%88%b7%f3%c6%8a%7b%1b%8e%ff%bf%a4%39%3f%9d%b1%e1%e0%9d%19%53%ef%ab%8f%9f%28%d7%1b%8c%dc%77%64%ea%05%9e%62%1f%3f%4b%03%cf%19%9e%bc%23%4b%d7%84%26%11%8e%3f%7e%a2%86%c3%d1%c0%7b%47%a2%c2%3e%3c%f5%c5%cf%e4%c9%b0%e8%b3%be%fe%af%50%d0%a9%9b%cd%7f%c7%fe%03%dd%38%8e%d1%d3%ef%e8%18%0b%05%00%00%0d]hex%
-0\r
-\r
+0%CR
+%CR
</data>
<datacheck>
-HTTP/1.1 200 OK\r
-Date: Mon, 29 Nov 2004 21:56:53 GMT\r
-Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29\r
-Vary: Accept-Encoding\r
-Content-Type: text/html; charset=ISO-8859-1\r
-Transfer-Encoding: gzip, chunked\r
-Content-Encoding: deflate\r
-\r
+HTTP/1.1 200 OK%CR
+Date: Mon, 29 Nov 2004 21:56:53 GMT%CR
+Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29%CR
+Vary: Accept-Encoding%CR
+Content-Type: text/html; charset=ISO-8859-1%CR
+Transfer-Encoding: gzip, chunked%CR
+Content-Encoding: deflate%CR
+%CR
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE project-listing SYSTEM "http://freshmeat.net/backend/fm-projects-0.4.dtd">
<project-listing>
<projectname_short>curl</projectname_short>
<projectname_full>curl and libcurl</projectname_full>
<desc_short>Command line tool and library for client-side URL transfers.</desc_short>
- <desc_full>curl and libcurl is a tool for transferring files\r
-using URL syntax. It supports HTTP, HTTPS, FTP,\r
-FTPS, DICT, TELNET, LDAP, FILE, and GOPHER, as\r
-well as HTTP-post, HTTP-put, cookies, FTP upload,\r
-resumed transfers, passwords, portnumbers, SSL\r
-certificates, Kerberos, and proxies. It is powered\r
-by libcurl, the client-side URL transfer library.\r
-There are bindings to libcurl for over 20\r
-languages and environments.\r
+ <desc_full>curl and libcurl is a tool for transferring files%CR
+using URL syntax. It supports HTTP, HTTPS, FTP,%CR
+FTPS, DICT, TELNET, LDAP, FILE, and GOPHER, as%CR
+well as HTTP-post, HTTP-put, cookies, FTP upload,%CR
+resumed transfers, passwords, portnumbers, SSL%CR
+certificates, Kerberos, and proxies. It is powered%CR
+by libcurl, the client-side URL transfer library.%CR
+There are bindings to libcurl for over 20%CR
+languages and environments.%CR
</desc_full>
<vitality_score>5784.57</vitality_score>
<vitality_percent>3.16</vitality_percent>
# Must not suppress in --verbose and --trace
# Must not suppress in statistics (eg received header byte total)
<stdout>
-HTTP/1.1 200 OK\r
-HTTP/1.1 200 OK\r
-Date: Tue, 09 Nov 2010 14:49:00 GMT\r
-Date: Tue, 09 Nov 2010 14:49:00 GMT\r
-Server: test-server/fake\r
-Server: test-server/fake\r
-Content-Type: text/html\r
-Content-Type: text/html\r
-Funny-head: yesyes\r
-Funny-head: yesyes\r
-Content-Length: 9\r
-Content-Length: 9\r
-Connection: keep-alive\r
-Connection: keep-alive\r
-\r
-\r
+HTTP/1.1 200 OK%CR
+HTTP/1.1 200 OK%CR
+Date: Tue, 09 Nov 2010 14:49:00 GMT%CR
+Date: Tue, 09 Nov 2010 14:49:00 GMT%CR
+Server: test-server/fake%CR
+Server: test-server/fake%CR
+Content-Type: text/html%CR
+Content-Type: text/html%CR
+Funny-head: yesyes%CR
+Funny-head: yesyes%CR
+Content-Length: 9%CR
+Content-Length: 9%CR
+Connection: keep-alive%CR
+Connection: keep-alive%CR
+%CR
+%CR
contents
CONNECT CODE: 200
-----+\w+
</strip>
<protocol>
-POST /we/want/%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Content-Length: 845\r
-Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763\r
-\r
-------------------------------9ef8d6205763\r
-Content-Disposition: form-data; name="name"\r
-\r
-value\r
-------------------------------9ef8d6205763\r
-Content-Disposition: form-data; name="file"\r
-Content-Type: multipart/mixed; boundary=----------------------------aaaaaaaaaaaa\r
-\r
-Content-Disposition: attachment; filename="test%TESTNUMBER.txt"\r
-Content-Type: text/plain\r
-\r
+POST /we/want/%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Content-Length: 845%CR
+Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763%CR
+%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: form-data; name="name"%CR
+%CR
+value%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: form-data; name="file"%CR
+Content-Type: multipart/mixed; boundary=----------------------------aaaaaaaaaaaa%CR
+%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER.txt"%CR
+Content-Type: text/plain%CR
+%CR
dummy data
-\r
-------------------------------9ef8d6205763\r
-Content-Disposition: attachment; filename="test%TESTNUMBER.txt"\r
-Content-Type: magic/content\r
-\r
+%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER.txt"%CR
+Content-Type: magic/content%CR
+%CR
dummy data
-\r
-------------------------------9ef8d6205763\r
-Content-Disposition: attachment; filename="test%TESTNUMBER.txt"\r
-Content-Type: text/plain\r
-\r
+%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER.txt"%CR
+Content-Type: text/plain%CR
+%CR
dummy data
-\r
-------------------------------aaaaaaaaaaaa--\r
-\r
-------------------------------9ef8d6205763--\r
+%CR
+------------------------------aaaaaaaaaaaa--%CR
+%CR
+------------------------------9ef8d6205763--%CR
</protocol>
</verify>
</testcase>
body
--
- yours sincerely\r
+ yours sincerely%CR
</data>
<datacheck>
body
--
- yours sincerely\r
+ yours sincerely%CR
</datacheck>
</reply>
#
<reply>
<data nocheck="yes">
-HTTP/1.1 200 OK\r
-Date: Tue, 09 Nov 2010 14:49:00 GMT\r
-Server: test-server/fake\r
-Content-Length: 6\r
-Connection: close\r
-Content-Type: text/html\r
-Content-Disposition: filename=name%TESTNUMBER; charset=funny; option=strange\r
-\r
+HTTP/1.1 200 OK%CR
+Date: Tue, 09 Nov 2010 14:49:00 GMT%CR
+Server: test-server/fake%CR
+Content-Length: 6%CR
+Connection: close%CR
+Content-Type: text/html%CR
+Content-Disposition: filename=name%TESTNUMBER; charset=funny; option=strange%CR
+%CR
12345
</data>
</reply>
#
<reply>
<data nocheck="yes">
-HTTP/1.1 200 OK\r
-Date: Tue, 09 Nov 2010 14:49:00 GMT\r
-Server: test-server/fake\r
-Content-Length: 6\r
-Connection: close\r
-Content-Type: text/html\r
-\r
+HTTP/1.1 200 OK%CR
+Date: Tue, 09 Nov 2010 14:49:00 GMT%CR
+Server: test-server/fake%CR
+Content-Length: 6%CR
+Connection: close%CR
+Content-Type: text/html%CR
+%CR
12345
</data>
</reply>
#
<reply>
<data nocheck="yes">
-HTTP/1.1 200 OK\r
-Date: Tue, 09 Nov 2010 14:49:00 GMT\r
-Server: test-server/fake\r
-Content-Length: 6\r
-Connection: close\r
-Content-Type: text/html\r
-Content-Disposition: filename=name%TESTNUMBER; charset=funny; option=strange\r
-\r
+HTTP/1.1 200 OK%CR
+Date: Tue, 09 Nov 2010 14:49:00 GMT%CR
+Server: test-server/fake%CR
+Content-Length: 6%CR
+Connection: close%CR
+Content-Type: text/html%CR
+Content-Disposition: filename=name%TESTNUMBER; charset=funny; option=strange%CR
+%CR
12345
</data>
</reply>
-----+\w+
</strip>
<protocol>
-POST /we/want/%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Content-Length: 930\r
-Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763\r
-\r
-------------------------------9ef8d6205763\r
-Content-Disposition: form-data; name="name"\r
-\r
-value\r
-------------------------------9ef8d6205763\r
-Content-Disposition: form-data; name="file"\r
-Content-Type: multipart/mixed; boundary=----------------------------aaaaaaaaaaaa\r
-\r
-Content-Disposition: attachment; filename="test%TESTNUMBER.txt"\r
-Content-Type: text/plain\r
-\r
+POST /we/want/%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Content-Length: 930%CR
+Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763%CR
+%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: form-data; name="name"%CR
+%CR
+value%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: form-data; name="file"%CR
+Content-Type: multipart/mixed; boundary=----------------------------aaaaaaaaaaaa%CR
+%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER.txt"%CR
+Content-Type: text/plain%CR
+%CR
dummy data
-\r
-------------------------------9ef8d6205763\r
-Content-Disposition: attachment; filename="test%TESTNUMBER.txt"\r
-Content-Type: magic/content\r
-Content-Transfer-Encoding: 8bit\r
-\r
+%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER.txt"%CR
+Content-Type: magic/content%CR
+Content-Transfer-Encoding: 8bit%CR
+%CR
dummy data
-\r
-------------------------------9ef8d6205763\r
-Content-Disposition: attachment; filename="test%TESTNUMBER.txt"\r
-Content-Type: text/plain\r
-X-testheader-1: header 1\r
-X-testheader-2: header 2\r
-\r
+%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER.txt"%CR
+Content-Type: text/plain%CR
+X-testheader-1: header 1%CR
+X-testheader-2: header 2%CR
+%CR
dummy data
-\r
-------------------------------aaaaaaaaaaaa--\r
-\r
-------------------------------9ef8d6205763--\r
+%CR
+------------------------------aaaaaaaaaaaa--%CR
+%CR
+------------------------------9ef8d6205763--%CR
</protocol>
<stripfile>
# curl's default user-agent varies with version, libraries etc.
Transfer-Encoding: chunked
Connection: mooo
-12345678123456789\r
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
-30\r
-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r
-21;heresatest=moooo\r
+12345678123456789%CR
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%CR
+30%CR
+bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%CR
+21;heresatest=moooo%CR
cccccccccccccccccccccccccccccccc
-\r
-0\r
-\r
+%CR
+0%CR
+%CR
</data>
</reply>
# Server-side
<reply>
<data>
-HTTP/1.1 200 funky chunky!\r
-Server: fakeit/0.9 fakeitbad/1.0\r
-Transfer-Encoding: chunked\r
-Trailer: chunky-trailer\r
-Connection: mooo\r
-\r
+HTTP/1.1 200 funky chunky!%CR
+Server: fakeit/0.9 fakeitbad/1.0%CR
+Transfer-Encoding: chunked%CR
+Trailer: chunky-trailer%CR
+Connection: mooo%CR
+%CR
40
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
30
</data>
<datacheck>
-HTTP/1.1 200 funky chunky!\r
-Server: fakeit/0.9 fakeitbad/1.0\r
-Transfer-Encoding: chunked\r
-Trailer: chunky-trailer\r
-Connection: mooo\r
-\r
+HTTP/1.1 200 funky chunky!%CR
+Server: fakeit/0.9 fakeitbad/1.0%CR
+Transfer-Encoding: chunked%CR
+Trailer: chunky-trailer%CR
+Connection: mooo%CR
+%CR
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccc
-chunky-trailer: header data\r
+chunky-trailer: header data%CR
</datacheck>
</reply>
</connect>
<datacheck>
-HTTP/1.1 200 Mighty fine indeed\r
-\r
+HTTP/1.1 200 Mighty fine indeed%CR
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
<reply>
<data nocheck="yes">
-HTTP/1.1 999 OK\r
-Date: Tue, 09 Nov 2010 14:49:00 GMT\r
-Server: test-server/fake\r
-Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT\r
-ETag: "21025-dc7-39462498"\r
-Accept-Ranges: bytes\r
-Content-Length: 6\r
-Connection: close\r
-Content-Type: text/html\r
-Funny-head: yesyes\r
-\r
+HTTP/1.1 999 OK%CR
+Date: Tue, 09 Nov 2010 14:49:00 GMT%CR
+Server: test-server/fake%CR
+Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT%CR
+ETag: "21025-dc7-39462498"%CR
+Accept-Ranges: bytes%CR
+Content-Length: 6%CR
+Connection: close%CR
+Content-Type: text/html%CR
+Funny-head: yesyes%CR
+%CR
-foo-
</data>
</reply>
<reply>
# Some servers (e.g. Apache 1.2) respond this way to an invalid byte range
<data>
-HTTP/1.1 200 OK\r
-Connection: close\r
-Content-Length: 100\r
-Content-Type: text/plain\r
-\r
+HTTP/1.1 200 OK%CR
+Connection: close%CR
+Content-Length: 100%CR
+Content-Type: text/plain%CR
+%CR
012345678
012345678
012345678
012345678
012345678
012345678
-HTTP/1.1 200 OK\r
-Connection: close\r
-Content-Length: 100\r
-Content-Type: text/plain\r
-\r
+HTTP/1.1 200 OK%CR
+Connection: close%CR
+Content-Length: 100%CR
+Content-Type: text/plain%CR
+%CR
</datacheck>
</reply>
# Server-side
<reply>
<data>
-HTTP/1.1 416 Invalid range\r
-Connection: close\r
-Content-Length: 0\r
+HTTP/1.1 416 Invalid range%CR
+Connection: close%CR
+Content-Length: 0%CR
Content-Range: */100
-\r
+%CR
</data>
# The file data that exists at the start of the test must be included in
012345678
012345678
012345678
-HTTP/1.1 416 Invalid range\r
-Connection: close\r
-Content-Length: 0\r
+HTTP/1.1 416 Invalid range%CR
+Connection: close%CR
+Content-Length: 0%CR
Content-Range: */100
-\r
+%CR
</datacheck>
</reply>
# Server-side
<reply>
<data>
-HTTP/1.1 200 funky chunky!\r
-Server: fakeit/0.9 fakeitbad/1.0\r
-Transfer-Encoding: chunked, chunked\r
-Connection: mooo\r
-\r
-40\r
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
-30\r
-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r
-21;heresatest=moooo\r
+HTTP/1.1 200 funky chunky!%CR
+Server: fakeit/0.9 fakeitbad/1.0%CR
+Transfer-Encoding: chunked, chunked%CR
+Connection: mooo%CR
+%CR
+40%CR
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%CR
+30%CR
+bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%CR
+21;heresatest=moooo%CR
cccccccccccccccccccccccccccccccc
-\r
-0\r
-chunky-trailer: header data\r
-another-header: yes\r
-\r
+%CR
+0%CR
+chunky-trailer: header data%CR
+another-header: yes%CR
+%CR
</data>
<datacheck>
-HTTP/1.1 200 funky chunky!\r
-Server: fakeit/0.9 fakeitbad/1.0\r
-Transfer-Encoding: chunked, chunked\r
-Connection: mooo\r
-\r
+HTTP/1.1 200 funky chunky!%CR
+Server: fakeit/0.9 fakeitbad/1.0%CR
+Transfer-Encoding: chunked, chunked%CR
+Connection: mooo%CR
+%CR
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccc
-chunky-trailer: header data\r
-another-header: yes\r
+chunky-trailer: header data%CR
+another-header: yes%CR
</datacheck>
<servercmd>
writedelay: 10
# Server-side
<reply>
<data>
-HTTP/1.1 200 funky chunky!\r
-Server: fakeit/0.9 fakeitbad/1.0\r
-Transfer-Encoding: chunked\r
-Transfer-Encoding: chunked\r
-Connection: mooo\r
-\r
-40\r
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
-30\r
-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r
-21;heresatest=moooo\r
+HTTP/1.1 200 funky chunky!%CR
+Server: fakeit/0.9 fakeitbad/1.0%CR
+Transfer-Encoding: chunked%CR
+Transfer-Encoding: chunked%CR
+Connection: mooo%CR
+%CR
+40%CR
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%CR
+30%CR
+bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%CR
+21;heresatest=moooo%CR
cccccccccccccccccccccccccccccccc
-\r
-0\r
-chunky-trailer: header data\r
-another-header: yes\r
-\r
+%CR
+0%CR
+chunky-trailer: header data%CR
+another-header: yes%CR
+%CR
</data>
<datacheck>
-HTTP/1.1 200 funky chunky!\r
-Server: fakeit/0.9 fakeitbad/1.0\r
-Transfer-Encoding: chunked\r
-Transfer-Encoding: chunked\r
-Connection: mooo\r
-\r
+HTTP/1.1 200 funky chunky!%CR
+Server: fakeit/0.9 fakeitbad/1.0%CR
+Transfer-Encoding: chunked%CR
+Transfer-Encoding: chunked%CR
+Connection: mooo%CR
+%CR
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccc
-chunky-trailer: header data\r
-another-header: yes\r
+chunky-trailer: header data%CR
+another-header: yes%CR
</datacheck>
<servercmd>
writedelay: 10
# Server-side
<reply>
<data>
-HTTP/1.1 200 funky chunky!\r
-Server: fakeit/0.9 fakeitbad/1.0\r
-Transfer-Encoding: identity, chunked\r
-Connection: mooo\r
-\r
-40\r
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
-30\r
-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r
-21;heresatest=moooo\r
+HTTP/1.1 200 funky chunky!%CR
+Server: fakeit/0.9 fakeitbad/1.0%CR
+Transfer-Encoding: identity, chunked%CR
+Connection: mooo%CR
+%CR
+40%CR
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%CR
+30%CR
+bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%CR
+21;heresatest=moooo%CR
cccccccccccccccccccccccccccccccc
-\r
-0\r
-chunky-trailer: header data\r
-another-header: yes\r
-\r
+%CR
+0%CR
+chunky-trailer: header data%CR
+another-header: yes%CR
+%CR
</data>
<datacheck>
-HTTP/1.1 200 funky chunky!\r
-Server: fakeit/0.9 fakeitbad/1.0\r
-Transfer-Encoding: identity, chunked\r
-Connection: mooo\r
-\r
+HTTP/1.1 200 funky chunky!%CR
+Server: fakeit/0.9 fakeitbad/1.0%CR
+Transfer-Encoding: identity, chunked%CR
+Connection: mooo%CR
+%CR
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccc
-chunky-trailer: header data\r
-another-header: yes\r
+chunky-trailer: header data%CR
+another-header: yes%CR
</datacheck>
</reply>
# Verify data after the test has been "shot"
<verify>
<protocol>
-PUT /bzz/%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Transfer-Encoding: chunked\r
-Expect: 100-continue\r
-\r
-1771\r
+PUT /bzz/%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Transfer-Encoding: chunked%CR
+Expect: 100-continue%CR
+%CR
+1771%CR
%repeat[2000 x hej]%
-\r
-0\r
-\r
+%CR
+0%CR
+%CR
</protocol>
</verify>
</testcase>
# Server-side
<reply>
<data>
-HTTP/1.1 200 funky chunky!\r
-Server: fakeit/0.9 fakeitbad/1.0\r
-Transfer-Encoding: chunked\r
-Trailer: chunky-trailer\r
-Connection: mooo\r
-\r
-40\r
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
-30\r
-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r
-21;heresatest=moooo\r
+HTTP/1.1 200 funky chunky!%CR
+Server: fakeit/0.9 fakeitbad/1.0%CR
+Transfer-Encoding: chunked%CR
+Trailer: chunky-trailer%CR
+Connection: mooo%CR
+%CR
+40%CR
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%CR
+30%CR
+bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%CR
+21;heresatest=moooo%CR
cccccccccccccccccccccccccccccccc
-\r
-0\r
-chunky-trailer: header data\r
-\r
+%CR
+0%CR
+chunky-trailer: header data%CR
+%CR
</data>
<datacheck>
-HTTP/1.1 200 funky chunky!\r
-Server: fakeit/0.9 fakeitbad/1.0\r
-Transfer-Encoding: chunked\r
-Trailer: chunky-trailer\r
-Connection: mooo\r
-\r
+HTTP/1.1 200 funky chunky!%CR
+Server: fakeit/0.9 fakeitbad/1.0%CR
+Transfer-Encoding: chunked%CR
+Trailer: chunky-trailer%CR
+Connection: mooo%CR
+%CR
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccc
-chunky-trailer: header data\r
+chunky-trailer: header data%CR
</datacheck>
<servercmd>
writedelay: 10
</data>
<datacheck>
-HTTP/1.1 200 OK\r
-\r
+HTTP/1.1 200 OK%CR
+%CR
HTTP/1.1 200 OK swsclose
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
# Server-side
<reply>
<data>
-HTTP/1.1 200 OK swsclose\r
-Transfer-Encoding: chunked\r
-Trailer: MyCoolTrailerHeader\r
-\r
-4\r
-data\r
-5\r
+HTTP/1.1 200 OK swsclose%CR
+Transfer-Encoding: chunked%CR
+Trailer: MyCoolTrailerHeader%CR
+%CR
+4%CR
+data%CR
+5%CR
d474
-\r
-0\r
-MyCoolTrailerHeader: amazingtrailer\r
-\r
+%CR
+0%CR
+MyCoolTrailerHeader: amazingtrailer%CR
+%CR
</data>
<datacheck>
-HTTP/1.1 200 OK swsclose\r
-Transfer-Encoding: chunked\r
-Trailer: MyCoolTrailerHeader\r
-\r
+HTTP/1.1 200 OK swsclose%CR
+Transfer-Encoding: chunked%CR
+Trailer: MyCoolTrailerHeader%CR
+%CR
Got bytes but pausing!
datad474
-MyCoolTrailerHeader: amazingtrailer\r
+MyCoolTrailerHeader: amazingtrailer%CR
</datacheck>
<servercmd>
writedelay: 10
# Server-side
<reply>
<data>
-HTTP/1.1 200 OK swsclose\r
-Transfer-Encoding: chunked\r
-\r
-4\r
-data\r
-5\r
+HTTP/1.1 200 OK swsclose%CR
+Transfer-Encoding: chunked%CR
+%CR
+4%CR
+data%CR
+5%CR
d474
-\r
-0\r
-\r
+%CR
+0%CR
+%CR
</data>
<datacheck>
CURLINFO_CONNECT_TIME_T on 1st header is OK
CURLINFO_TOTAL_TIME_T on 1st header is OK
CURLINFO_APPCONNECT_TIME_T on 1st header is OK
CURLINFO_SPEED_DOWNLOAD_T on 1st header is OK
-HTTP/1.1 200 OK swsclose\r
-Transfer-Encoding: chunked\r
-\r
+HTTP/1.1 200 OK swsclose%CR
+Transfer-Encoding: chunked%CR
+%CR
datad474
CURLINFO_CONNECT_TIME_T on done is OK
CURLINFO_PRETRANSFER_TIME_T on done is OK
newlinens?
yes please
- \r
+ %CR
[tab][CR] too
</file>
</client>
^(Content-Type: multipart/form-data;|------------).*
</strip>
<protocol>
-POST /we/want/%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Content-Length: 322\r
-Content-Type: multipart/form-data; boundary=----------------------------c2d1767eb6ac\r
-\r
-------------------------------c2d1767eb6ac\r
-Content-Disposition: form-data; name="name"\r
-\r
+POST /we/want/%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Content-Length: 322%CR
+Content-Type: multipart/form-data; boundary=----------------------------c2d1767eb6ac%CR
+%CR
+------------------------------c2d1767eb6ac%CR
+Content-Disposition: form-data; name="name"%CR
+%CR
contents
from
a
newlinens?
yes please
- \r
+ %CR
[tab][CR] too
-\r
-------------------------------c2d1767eb6ac\r
-Content-Disposition: form-data; name="tool"\r
-\r
-curl\r
-------------------------------c2d1767eb6ac--\r
+%CR
+------------------------------c2d1767eb6ac%CR
+Content-Disposition: form-data; name="tool"%CR
+%CR
+curl%CR
+------------------------------c2d1767eb6ac--%CR
</protocol>
</verify>
</testcase>
# to avoid XML escaping problems).
<reply>
<data>
-HTTP/1.1 206 Partial Content swsclose\r
-Date: Sat, 24 Apr 2004 09:24:49 GMT\r
-Server: Apache/1.3.29 (Unix) mod_throttle/3.1.2 PHP/4.3.4 mod_fastcgi/2.4.0\r
-Last-Modified: Tue, 23 Mar 2004 08:23:14 GMT\r
-ETag: "53814a-ec5-405ff3f2"\r
-Accept-Ranges: bytes\r
-Content-Length: 187\r
-Content-Type: multipart/byteranges; boundary=408a326132c\r
-\r
---408a326132c\r
-Content-type: text/html\r
-Content-range: bytes 0-10/3781\r
-\r
+HTTP/1.1 206 Partial Content swsclose%CR
+Date: Sat, 24 Apr 2004 09:24:49 GMT%CR
+Server: Apache/1.3.29 (Unix) mod_throttle/3.1.2 PHP/4.3.4 mod_fastcgi/2.4.0%CR
+Last-Modified: Tue, 23 Mar 2004 08:23:14 GMT%CR
+ETag: "53814a-ec5-405ff3f2"%CR
+Accept-Ranges: bytes%CR
+Content-Length: 187%CR
+Content-Type: multipart/byteranges; boundary=408a326132c%CR
+%CR
+--408a326132c%CR
+Content-type: text/html%CR
+Content-range: bytes 0-10/3781%CR
+%CR
{html}
{hea
-\r
---408a326132c\r
-Content-type: text/html\r
-Content-range: bytes 12-15/3781\r
-\r
+%CR
+--408a326132c%CR
+Content-type: text/html%CR
+Content-range: bytes 12-15/3781%CR
+%CR
}
{t
-\r
---408a326132c--\r
+%CR
+--408a326132c--%CR
</data>
</reply>
^(Content-Type: multipart/form-data;|------------).*
</strip>
<protocol>
-POST /we/want/%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Content-Length: 235\r
-Content-Type: multipart/form-data; boundary=----------------------------b0b3d6d23991\r
-\r
-------------------------------b0b3d6d23991\r
-Content-Disposition: form-data; name="name"; filename="fie ld %TESTNUMBER"\r
-Content-Type: application/octet-stream\r
-\r
+POST /we/want/%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Content-Length: 235%CR
+Content-Type: multipart/form-data; boundary=----------------------------b0b3d6d23991%CR
+%CR
+------------------------------b0b3d6d23991%CR
+Content-Disposition: form-data; name="name"; filename="fie ld %TESTNUMBER"%CR
+Content-Type: application/octet-stream%CR
+%CR
data inside the file
-\r
-------------------------------b0b3d6d23991--\r
+%CR
+------------------------------b0b3d6d23991--%CR
</protocol>
</verify>
</testcase>
^(Content-Type: multipart/form-data;|------------).*
</strip>
<protocol>
-POST /we/want/%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Content-Length: 378\r
-Content-Type: multipart/form-data; boundary=----------------------------5dbea401cd8c\r
-\r
-------------------------------5dbea401cd8c\r
-Content-Disposition: form-data; name="field1"\r
-\r
-contents1\r
-------------------------------5dbea401cd8c\r
-Content-Disposition: form-data; name="fileupload"; filename="%DEV_NULL"\r
-Content-Type: text/x-null;format=x-curl\r
-\r
+POST /we/want/%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Content-Length: 378%CR
+Content-Type: multipart/form-data; boundary=----------------------------5dbea401cd8c%CR
+%CR
+------------------------------5dbea401cd8c%CR
+Content-Disposition: form-data; name="field1"%CR
+%CR
+contents1%CR
+------------------------------5dbea401cd8c%CR
+Content-Disposition: form-data; name="fileupload"; filename="%DEV_NULL"%CR
+Content-Type: text/x-null;format=x-curl%CR
+%CR
line1
line2
line3
line6
line7
line8
-\r
-------------------------------5dbea401cd8c--\r
+%CR
+------------------------------5dbea401cd8c--%CR
</protocol>
</verify>
</testcase>
</connect>
<datacheck>
-HTTP/1.1 204 Sure go ahead\r
-\r
+HTTP/1.1 204 Sure go ahead%CR
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Set-Cookie: secondcookie=2data;
Set-Cookie: cookie3=data3;
Blank:
-Blank2:\r
+Blank2:%CR
Location: /%TESTNUMBER0002
</data>
# Server-side
<reply>
<data nocheck="yes">
-HTTP/1.1 200 funky chunky!\r
-Server: fakeit/0.9 fakeitbad/1.0\r
+HTTP/1.1 200 funky chunky!%CR
+Server: fakeit/0.9 fakeitbad/1.0%CR
Date: Thu, 09 Nov 2010 14:49:00 GMT
-Transfer-Encoding: chunked\r
-Trailer: server\r
-Connection: mooo\r
-\r
-40\r
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
-30\r
-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r
-21;heresatest=moooo\r
+Transfer-Encoding: chunked%CR
+Trailer: server%CR
+Connection: mooo%CR
+%CR
+40%CR
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%CR
+30%CR
+bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%CR
+21;heresatest=moooo%CR
cccccccccccccccccccccccccccccccc
-\r
-0\r
-Server: sent-as-trailer\r
-\r
+%CR
+0%CR
+Server: sent-as-trailer%CR
+%CR
</data>
</reply>
^timeout = [5-6]$
</strip>
<protocol>
-GET /%TESTNUMBER0001 HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-\r
-USER anonymous\r
-PASS ftp@example.com\r
-PWD\r
-EPSV\r
-TYPE I\r
-SIZE %TESTNUMBER0002\r
-RETR %TESTNUMBER0002\r
+GET /%TESTNUMBER0001 HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+%CR
+USER anonymous%CR
+PASS ftp@example.com%CR
+PWD%CR
+EPSV%CR
+TYPE I%CR
+SIZE %TESTNUMBER0002%CR
+RETR %TESTNUMBER0002%CR
opcode = 1
mode = octet
tsize = 0
blksize = 512
filename = /%TESTNUMBER0003
-QUIT\r
+QUIT%CR
</protocol>
<stdout>
-foo-
^timeout = [5-6]$
</strip>
<protocol>
-GET /%TESTNUMBER0001 HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-\r
-USER anonymous\r
-PASS ftp@example.com\r
-PWD\r
-EPSV\r
-TYPE I\r
-SIZE %TESTNUMBER0002\r
-RETR %TESTNUMBER0002\r
+GET /%TESTNUMBER0001 HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+%CR
+USER anonymous%CR
+PASS ftp@example.com%CR
+PWD%CR
+EPSV%CR
+TYPE I%CR
+SIZE %TESTNUMBER0002%CR
+RETR %TESTNUMBER0002%CR
opcode = 1
mode = octet
tsize = 0
tsize = 0
blksize = 512
filename = /%TESTNUMBER0003
-EPSV\r
-SIZE %TESTNUMBER0002\r
-RETR %TESTNUMBER0002\r
-GET /%TESTNUMBER0001 HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-\r
-QUIT\r
+EPSV%CR
+SIZE %TESTNUMBER0002%CR
+RETR %TESTNUMBER0002%CR
+GET /%TESTNUMBER0001 HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+%CR
+QUIT%CR
</protocol>
<stdout>
-foo-
# then this is returned when we get proxy-auth
<connect1000>
-HTTP/1.1 200 OK\r
+HTTP/1.1 200 OK%CR
Server: no
-\r
+%CR
</connect1000>
<datacheck>
-HTTP/1.1 407 Authorization Required to proxy me my dear\r
-Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345"\r
-Content-Length: 33\r
-\r
-HTTP/1.1 200 OK\r
+HTTP/1.1 407 Authorization Required to proxy me my dear%CR
+Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345"%CR
+Content-Length: 33%CR
+%CR
+HTTP/1.1 200 OK%CR
Server: no
-\r
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Content-Length: 7
Transfer-Encoding: chunked
Connection: mooo
-41\r
+41%CR
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-\r
+%CR
</data>
<datacheck>
HTTP/1.1 200 funky chunky! swsclose
# Verify data after the test has been "shot"
<verify>
<protocol>
-PUT ftp://daniel:mysecret@host.com/we/want/%TESTNUMBER HTTP/1.1\r
-Host: host.com:21\r
-Authorization: Basic %b64[daniel:mysecret]b64%\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Proxy-Connection: Keep-Alive\r
-Content-Length: 78\r
-\r
+PUT ftp://daniel:mysecret@host.com/we/want/%TESTNUMBER HTTP/1.1%CR
+Host: host.com:21%CR
+Authorization: Basic %b64[daniel:mysecret]b64%%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Proxy-Connection: Keep-Alive%CR
+Content-Length: 78%CR
+%CR
Weird
file
to
# then this is returned when we get proxy-auth
<data1000>
-HTTP/1.1 200 OK swsbounce\r
+HTTP/1.1 200 OK swsbounce%CR
Server: no
-\r
+%CR
Nice proxy auth sir!
</data1000>
<datacheck>
-HTTP/1.1 407 Authorization Required to proxy me my dear\r
-Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==\r
-Content-Length: 33\r
-\r
-HTTP/1.1 200 Things are fine in proxy land\r
-Server: Microsoft-IIS/5.0\r
-Content-Type: text/html; charset=iso-8859-1\r
-\r
+HTTP/1.1 407 Authorization Required to proxy me my dear%CR
+Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==%CR
+Content-Length: 33%CR
+%CR
+HTTP/1.1 200 Things are fine in proxy land%CR
+Server: Microsoft-IIS/5.0%CR
+Content-Type: text/html; charset=iso-8859-1%CR
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Content-Length: 7
# then this is returned when we get proxy-auth
<data1000>
-HTTP/1.1 200 OK swsbounce\r
+HTTP/1.1 200 OK swsbounce%CR
Server: no
-\r
+%CR
Nice proxy auth sir!
</data1000>
<datacheck>
-HTTP/1.1 407 Authorization Required to proxy me my dear\r
-Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==\r
-Content-Length: 33\r
-\r
-HTTP/1.1 200 Things are fine in proxy land\r
-Server: Microsoft-IIS/5.0\r
-Content-Type: text/html; charset=iso-8859-1\r
-\r
+HTTP/1.1 407 Authorization Required to proxy me my dear%CR
+Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==%CR
+Content-Length: 33%CR
+%CR
+HTTP/1.1 200 Things are fine in proxy land%CR
+Server: Microsoft-IIS/5.0%CR
+Content-Type: text/html; charset=iso-8859-1%CR
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Content-Length: 7
# Verify data after the test has been "shot"
<verify>
<protocol>
-PUT /%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Transfer-Encoding: chunked\r
-\r
-1e\r
+PUT /%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Transfer-Encoding: chunked%CR
+%CR
+1e%CR
just some tiny teeny contents
-\r
-0\r
-\r
+%CR
+0%CR
+%CR
</protocol>
</verify>
</testcase>
</data>
<datacheck>
-HTTP/1.1 200 OK\r
-Date: Mon, 29 Nov 2004 21:56:53 GMT\r
-Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29\r
-Vary: Accept-Encoding\r
-Content-Type: text/html; charset=ISO-8859-1\r
-Content-Encoding: deflate\r
-Content-Length: 1305\r
-\r
+HTTP/1.1 200 OK%CR
+Date: Mon, 29 Nov 2004 21:56:53 GMT%CR
+Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29%CR
+Vary: Accept-Encoding%CR
+Content-Type: text/html; charset=ISO-8859-1%CR
+Content-Encoding: deflate%CR
+Content-Length: 1305%CR
+%CR
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE project-listing SYSTEM "http://freshmeat.net/backend/fm-projects-0.4.dtd">
<project-listing>
<projectname_short>curl</projectname_short>
<projectname_full>curl and libcurl</projectname_full>
<desc_short>Command line tool and library for client-side URL transfers.</desc_short>
- <desc_full>curl and libcurl is a tool for transferring files\r
-using URL syntax. It supports HTTP, HTTPS, FTP,\r
-FTPS, DICT, TELNET, LDAP, FILE, and GOPHER, as\r
-well as HTTP-post, HTTP-put, cookies, FTP upload,\r
-resumed transfers, passwords, portnumbers, SSL\r
-certificates, Kerberos, and proxies. It is powered\r
-by libcurl, the client-side URL transfer library.\r
-There are bindings to libcurl for over 20\r
-languages and environments.\r
+ <desc_full>curl and libcurl is a tool for transferring files%CR
+using URL syntax. It supports HTTP, HTTPS, FTP,%CR
+FTPS, DICT, TELNET, LDAP, FILE, and GOPHER, as%CR
+well as HTTP-post, HTTP-put, cookies, FTP upload,%CR
+resumed transfers, passwords, portnumbers, SSL%CR
+certificates, Kerberos, and proxies. It is powered%CR
+by libcurl, the client-side URL transfer library.%CR
+There are bindings to libcurl for over 20%CR
+languages and environments.%CR
</desc_full>
<vitality_score>5784.57</vitality_score>
<vitality_percent>3.16</vitality_percent>
</data>
<datacheck>
-HTTP/1.1 200 OK\r
-Date: Mon, 29 Nov 2004 21:56:53 GMT\r
-Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29\r
-Vary: Accept-Encoding\r
-Content-Type: text/html; charset=ISO-8859-1\r
-Content-Encoding: deflate, identity, gzip\r
-Content-Length: 1328\r
-\r
+HTTP/1.1 200 OK%CR
+Date: Mon, 29 Nov 2004 21:56:53 GMT%CR
+Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29%CR
+Vary: Accept-Encoding%CR
+Content-Type: text/html; charset=ISO-8859-1%CR
+Content-Encoding: deflate, identity, gzip%CR
+Content-Length: 1328%CR
+%CR
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE project-listing SYSTEM "http://freshmeat.net/backend/fm-projects-0.4.dtd">
<project-listing>
<projectname_short>curl</projectname_short>
<projectname_full>curl and libcurl</projectname_full>
<desc_short>Command line tool and library for client-side URL transfers.</desc_short>
- <desc_full>curl and libcurl is a tool for transferring files\r
-using URL syntax. It supports HTTP, HTTPS, FTP,\r
-FTPS, DICT, TELNET, LDAP, FILE, and GOPHER, as\r
-well as HTTP-post, HTTP-put, cookies, FTP upload,\r
-resumed transfers, passwords, portnumbers, SSL\r
-certificates, Kerberos, and proxies. It is powered\r
-by libcurl, the client-side URL transfer library.\r
-There are bindings to libcurl for over 20\r
-languages and environments.\r
+ <desc_full>curl and libcurl is a tool for transferring files%CR
+using URL syntax. It supports HTTP, HTTPS, FTP,%CR
+FTPS, DICT, TELNET, LDAP, FILE, and GOPHER, as%CR
+well as HTTP-post, HTTP-put, cookies, FTP upload,%CR
+resumed transfers, passwords, portnumbers, SSL%CR
+certificates, Kerberos, and proxies. It is powered%CR
+by libcurl, the client-side URL transfer library.%CR
+There are bindings to libcurl for over 20%CR
+languages and environments.%CR
</desc_full>
<vitality_score>5784.57</vitality_score>
<vitality_percent>3.16</vitality_percent>
</data>
<datacheck>
-HTTP/1.1 200 OK\r
-Date: Mon, 29 Nov 2004 21:56:53 GMT\r
-Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29\r
-Vary: Accept-Encoding\r
-Content-Type: text/html; charset=ISO-8859-1\r
-Content-Encoding: deflate\r
-Content-Length: 1287\r
-\r
+HTTP/1.1 200 OK%CR
+Date: Mon, 29 Nov 2004 21:56:53 GMT%CR
+Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29%CR
+Vary: Accept-Encoding%CR
+Content-Type: text/html; charset=ISO-8859-1%CR
+Content-Encoding: deflate%CR
+Content-Length: 1287%CR
+%CR
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE project-listing SYSTEM "http://freshmeat.net/backend/fm-projects-0.4.dtd">
<project-listing>
<projectname_short>curl</projectname_short>
<projectname_full>curl and libcurl</projectname_full>
<desc_short>Command line tool and library for client-side URL transfers.</desc_short>
- <desc_full>curl and libcurl is a tool for transferring files\r
-using URL syntax. It supports HTTP, HTTPS, FTP,\r
-FTPS, DICT, TELNET, LDAP, FILE, and GOPHER, as\r
-well as HTTP-post, HTTP-put, cookies, FTP upload,\r
-resumed transfers, passwords, portnumbers, SSL\r
-certificates, Kerberos, and proxies. It is powered\r
-by libcurl, the client-side URL transfer library.\r
-There are bindings to libcurl for over 20\r
-languages and environments.\r
+ <desc_full>curl and libcurl is a tool for transferring files%CR
+using URL syntax. It supports HTTP, HTTPS, FTP,%CR
+FTPS, DICT, TELNET, LDAP, FILE, and GOPHER, as%CR
+well as HTTP-post, HTTP-put, cookies, FTP upload,%CR
+resumed transfers, passwords, portnumbers, SSL%CR
+certificates, Kerberos, and proxies. It is powered%CR
+by libcurl, the client-side URL transfer library.%CR
+There are bindings to libcurl for over 20%CR
+languages and environments.%CR
</desc_full>
<vitality_score>5784.57</vitality_score>
<vitality_percent>3.16</vitality_percent>
Proxy-Connection: close
Content-Length: 0
-HTTP/1.1 200 A OK\r
-Server: Microsoft-IIS/6.0\r
-Content-Type: text/html; charset=iso-8859-1\r
-Content-Length: 3\r
-\r
+HTTP/1.1 200 A OK%CR
+Server: Microsoft-IIS/6.0%CR
+Content-Type: text/html; charset=iso-8859-1%CR
+Content-Length: 3%CR
+%CR
ok
</datacheck>
^(Content-Type: multipart/form-data;|------).*
</strip>
<protocol>
-POST http://remotehost:54321/we/want/%TESTNUMBER HTTP/1.1\r
-Host: remotehost:54321\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Proxy-Connection: Keep-Alive\r
-Content-Length: 433\r
-Content-Type: multipart/form-data; boundary=----------------------------7c633d5c27ce\r
-\r
-------------------------------7c633d5c27ce\r
-Content-Disposition: form-data; name="name"\r
-\r
-daniel\r
-------------------------------7c633d5c27ce\r
-Content-Disposition: form-data; name="tool"\r
-\r
-curl\r
-------------------------------7c633d5c27ce\r
-Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER.txt"\r
-Content-Type: text/plain\r
-\r
+POST http://remotehost:54321/we/want/%TESTNUMBER HTTP/1.1%CR
+Host: remotehost:54321%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Proxy-Connection: Keep-Alive%CR
+Content-Length: 433%CR
+Content-Type: multipart/form-data; boundary=----------------------------7c633d5c27ce%CR
+%CR
+------------------------------7c633d5c27ce%CR
+Content-Disposition: form-data; name="name"%CR
+%CR
+daniel%CR
+------------------------------7c633d5c27ce%CR
+Content-Disposition: form-data; name="tool"%CR
+%CR
+curl%CR
+------------------------------7c633d5c27ce%CR
+Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER.txt"%CR
+Content-Type: text/plain%CR
+%CR
foo-
This is a moo-
bar
-\r
-------------------------------7c633d5c27ce--\r
-POST http://remotehost:54321/we/want/%TESTNUMBER HTTP/1.1\r
-Host: remotehost:54321\r
-Proxy-Authorization: Digest username="uuuser", realm="many secrets", nonce="911", uri="/we/want/%TESTNUMBER", response="2501654ca391f0b5c8c12a1da77e34cd"\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Proxy-Connection: Keep-Alive\r
-Content-Length: 433\r
-Content-Type: multipart/form-data; boundary=----------------------------7c633d5c27ce\r
-\r
-------------------------------7c633d5c27ce\r
-Content-Disposition: form-data; name="name"\r
-\r
-daniel\r
-------------------------------7c633d5c27ce\r
-Content-Disposition: form-data; name="tool"\r
-\r
-curl\r
-------------------------------7c633d5c27ce\r
-Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER.txt"\r
-Content-Type: text/plain\r
-\r
+%CR
+------------------------------7c633d5c27ce--%CR
+POST http://remotehost:54321/we/want/%TESTNUMBER HTTP/1.1%CR
+Host: remotehost:54321%CR
+Proxy-Authorization: Digest username="uuuser", realm="many secrets", nonce="911", uri="/we/want/%TESTNUMBER", response="2501654ca391f0b5c8c12a1da77e34cd"%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Proxy-Connection: Keep-Alive%CR
+Content-Length: 433%CR
+Content-Type: multipart/form-data; boundary=----------------------------7c633d5c27ce%CR
+%CR
+------------------------------7c633d5c27ce%CR
+Content-Disposition: form-data; name="name"%CR
+%CR
+daniel%CR
+------------------------------7c633d5c27ce%CR
+Content-Disposition: form-data; name="tool"%CR
+%CR
+curl%CR
+------------------------------7c633d5c27ce%CR
+Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER.txt"%CR
+Content-Type: text/plain%CR
+%CR
foo-
This is a moo-
bar
-\r
-------------------------------7c633d5c27ce--\r
+%CR
+------------------------------7c633d5c27ce--%CR
</protocol>
</verify>
</testcase>
Proxy-Authenticate: Digest realm="many secrets", nonce="911"
Content-Length: 0
-HTTP/1.1 200 A OK\r
-Server: Microsoft-IIS/6.0\r
-Content-Type: text/html; charset=iso-8859-1\r
-Content-Length: 3\r
-\r
+HTTP/1.1 200 A OK%CR
+Server: Microsoft-IIS/6.0%CR
+Content-Type: text/html; charset=iso-8859-1%CR
+Content-Length: 3%CR
+%CR
ok
</datacheck>
^(Content-Type: multipart/form-data;|------).*
</strip>
<protocol>
-POST http://remotehost:54321/we/want/%TESTNUMBER HTTP/1.1\r
-Host: remotehost:54321\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Proxy-Connection: Keep-Alive\r
-Expect: 100-continue\r
-Content-Length: 433\r
-Content-Type: multipart/form-data; boundary=----------------------------7c633d5c27ce\r
-\r
-------------------------------7c633d5c27ce\r
-Content-Disposition: form-data; name="name"\r
-\r
-daniel\r
-------------------------------7c633d5c27ce\r
-Content-Disposition: form-data; name="tool"\r
-\r
-curl\r
-------------------------------7c633d5c27ce\r
-Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER.txt"\r
-Content-Type: text/plain\r
-\r
+POST http://remotehost:54321/we/want/%TESTNUMBER HTTP/1.1%CR
+Host: remotehost:54321%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Proxy-Connection: Keep-Alive%CR
+Expect: 100-continue%CR
+Content-Length: 433%CR
+Content-Type: multipart/form-data; boundary=----------------------------7c633d5c27ce%CR
+%CR
+------------------------------7c633d5c27ce%CR
+Content-Disposition: form-data; name="name"%CR
+%CR
+daniel%CR
+------------------------------7c633d5c27ce%CR
+Content-Disposition: form-data; name="tool"%CR
+%CR
+curl%CR
+------------------------------7c633d5c27ce%CR
+Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER.txt"%CR
+Content-Type: text/plain%CR
+%CR
foo-
This is a moo-
bar
-\r
-------------------------------7c633d5c27ce--\r
-POST http://remotehost:54321/we/want/%TESTNUMBER HTTP/1.1\r
-Host: remotehost:54321\r
-Proxy-Authorization: Digest username="uuuser", realm="many secrets", nonce="911", uri="/we/want/%TESTNUMBER", response="b479994d13e60f3aa192a67c5892ddc5"\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Proxy-Connection: Keep-Alive\r
-Expect: 100-continue\r
-Content-Length: 433\r
-Content-Type: multipart/form-data; boundary=----------------------------7c633d5c27ce\r
-\r
-------------------------------7c633d5c27ce\r
-Content-Disposition: form-data; name="name"\r
-\r
-daniel\r
-------------------------------7c633d5c27ce\r
-Content-Disposition: form-data; name="tool"\r
-\r
-curl\r
-------------------------------7c633d5c27ce\r
-Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER.txt"\r
-Content-Type: text/plain\r
-\r
+%CR
+------------------------------7c633d5c27ce--%CR
+POST http://remotehost:54321/we/want/%TESTNUMBER HTTP/1.1%CR
+Host: remotehost:54321%CR
+Proxy-Authorization: Digest username="uuuser", realm="many secrets", nonce="911", uri="/we/want/%TESTNUMBER", response="b479994d13e60f3aa192a67c5892ddc5"%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Proxy-Connection: Keep-Alive%CR
+Expect: 100-continue%CR
+Content-Length: 433%CR
+Content-Type: multipart/form-data; boundary=----------------------------7c633d5c27ce%CR
+%CR
+------------------------------7c633d5c27ce%CR
+Content-Disposition: form-data; name="name"%CR
+%CR
+daniel%CR
+------------------------------7c633d5c27ce%CR
+Content-Disposition: form-data; name="tool"%CR
+%CR
+curl%CR
+------------------------------7c633d5c27ce%CR
+Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER.txt"%CR
+Content-Type: text/plain%CR
+%CR
foo-
This is a moo-
bar
-\r
-------------------------------7c633d5c27ce--\r
+%CR
+------------------------------7c633d5c27ce--%CR
</protocol>
</verify>
</testcase>
# then this is returned when we get proxy-auth
<data1000>
-HTTP/1.1 200 OK swsbounce\r
+HTTP/1.1 200 OK swsbounce%CR
Server: no
-\r
+%CR
Nice proxy auth sir!
</data1000>
<datacheck>
-HTTP/1.0 407 Authorization Required to proxy me my dear\r
-Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==\r
-Connection: Keep-Alive\r
-Content-Length: 1033\r
-\r
-HTTP/1.1 200 Things are fine in proxy land\r
-Server: Microsoft-IIS/5.0\r
-Content-Type: text/html; charset=iso-8859-1\r
-\r
+HTTP/1.0 407 Authorization Required to proxy me my dear%CR
+Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==%CR
+Connection: Keep-Alive%CR
+Content-Length: 1033%CR
+%CR
+HTTP/1.1 200 Things are fine in proxy land%CR
+Server: Microsoft-IIS/5.0%CR
+Content-Type: text/html; charset=iso-8859-1%CR
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Content-Length: 7
# Server-side
<reply>
<data>
-HTTP/1.1 200 funky chunky!\r
-Server: fakeit/0.9 fakeitbad/1.0\r
-Transfer-Encoding: chunked\r
-Trailer: chunky-trailer\r
-Connection: mooo\r
-\r
-40\r
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
-30\r
-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r
-21;heresatest=moooo\r
+HTTP/1.1 200 funky chunky!%CR
+Server: fakeit/0.9 fakeitbad/1.0%CR
+Transfer-Encoding: chunked%CR
+Trailer: chunky-trailer%CR
+Connection: mooo%CR
+%CR
+40%CR
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%CR
+30%CR
+bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%CR
+21;heresatest=moooo%CR
cccccccccccccccccccccccccccccccc
-\r
-0\r
-chunky-trailer: header data\r
-\r
+%CR
+0%CR
+chunky-trailer: header data%CR
+%CR
</data>
<datacheck>
-HTTP/1.1 200 funky chunky!\r
-Server: fakeit/0.9 fakeitbad/1.0\r
-Transfer-Encoding: chunked\r
-Trailer: chunky-trailer\r
-Connection: mooo\r
-\r
+HTTP/1.1 200 funky chunky!%CR
+Server: fakeit/0.9 fakeitbad/1.0%CR
+Transfer-Encoding: chunked%CR
+Trailer: chunky-trailer%CR
+Connection: mooo%CR
+%CR
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccc
-chunky-trailer: header data\r
+chunky-trailer: header data%CR
</datacheck>
<servercmd>
writedelay: 10
contents
</data>
<datacheck>
-HTTP/1.1 200 OK\r
-Connected-fine: sure\r
-\r
+HTTP/1.1 200 OK%CR
+Connected-fine: sure%CR
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
monster
</data>
<data1 nocheck="yes">
-HTTP/1.1 200 OK\r
-Date: Sun, 13 Sep 2020 15:00 GMT\r
-Transfer-Encoding: chunked\r
-Connection: close\r
-Content-Type: text/plain; charset=us-ascii\r
-\r
-0007\r
-bigger \r
-0008\r
+HTTP/1.1 200 OK%CR
+Date: Sun, 13 Sep 2020 15:00 GMT%CR
+Transfer-Encoding: chunked%CR
+Connection: close%CR
+Content-Type: text/plain; charset=us-ascii%CR
+%CR
+0007%CR
+bigger %CR
+0008%CR
monster
-\r
-0\r
-\r
+%CR
+0%CR
+%CR
</data1>
</reply>
^(Content-Type: multipart/form-data;|------).*
</strip>
<protocol>
-POST /we/want/%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPSPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Content-Length: 1410\r
-Content-Type: multipart/form-data; boundary=----------------------------qrstuvwxyz0123456789AB\r
-\r
-------------------------------qrstuvwxyz0123456789AB\r
-Content-Disposition: form-data; name="name"\r
-\r
-daniel\r
-------------------------------qrstuvwxyz0123456789AB\r
-Content-Disposition: form-data; name="tool"\r
-\r
-curl\r
-------------------------------qrstuvwxyz0123456789AB\r
-Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER.txt"\r
-Content-Type: text/plain\r
-\r
+POST /we/want/%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPSPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Content-Length: 1410%CR
+Content-Type: multipart/form-data; boundary=----------------------------qrstuvwxyz0123456789AB%CR
+%CR
+------------------------------qrstuvwxyz0123456789AB%CR
+Content-Disposition: form-data; name="name"%CR
+%CR
+daniel%CR
+------------------------------qrstuvwxyz0123456789AB%CR
+Content-Disposition: form-data; name="tool"%CR
+%CR
+curl%CR
+------------------------------qrstuvwxyz0123456789AB%CR
+Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER.txt"%CR
+Content-Type: text/plain%CR
+%CR
%repeat[1000 x a]%
-\r
-------------------------------qrstuvwxyz0123456789AB--\r
+%CR
+------------------------------qrstuvwxyz0123456789AB--%CR
</protocol>
</verify>
</testcase>
<reply>
<data>
-HTTP/1.1 200 OK\r
-Date: Tue, 09 Nov 2010 14:49:00 GMT\r
-Server: test-server/fake\r
-Content-Length: 4\r
-Content-Type: text/html\r
-Funny-head: yesyes\r
+HTTP/1.1 200 OK%CR
+Date: Tue, 09 Nov 2010 14:49:00 GMT%CR
+Server: test-server/fake%CR
+Content-Length: 4%CR
+Content-Type: text/html%CR
+Funny-head: yesyes%CR
Set-Cookie: blankdomain=sure; domain=; path=/
-Set-Cookie: foobar=name; domain=anything.com; path=/ ; secure\r
-Set-Cookie:ismatch=this ; domain=test31.curl; path=/silly/\r
-Set-Cookie:ISMATCH=this ; domain=test31.curl; path=/silly/\r
-Set-Cookie: overwrite=this ; domain=test31.curl; path=/overwrite/\r
-Set-Cookie: overwrite=this2 ; domain=test31.curl; path=/overwrite\r
-Set-Cookie: sec1value=secure1 ; domain=test31.curl; path=/secure1/ ; secure\r
-Set-Cookie: sec2value=secure2 ; domain=test31.curl; path=/secure2/ ; secure=\r
-Set-Cookie: sec3value=secure3 ; domain=test31.curl; path=/secure3/ ; secure=\r
-Set-Cookie: sec4value=secure4 ; secure=; domain=test31.curl; path=/secure4/ ; \r
-Set-Cookie: sec5value=secure5 ; secure; domain=test31.curl; path=/secure5/ ; \r
-Set-Cookie: sec6value=secure6 ; secure ; domain=test31.curl; path=/secure6/ ; \r
-Set-Cookie: sec7value=secure7 ; secure ; domain=test31.curl; path=/secure7/ ; \r
-Set-Cookie: sec8value=secure8 ; secure= ; domain=test31.curl; path=/secure8/ ; \r
-Set-Cookie: secure=very1 ; secure=; domain=test31.curl; path=/secure9/; \r
-Set-Cookie: httpo1=value1 ; domain=test31.curl; path=/p1/; httponly\r
-Set-Cookie: httpo2=value2 ; domain=test31.curl; path=/p2/; httponly=\r
-Set-Cookie: httpo3=value3 ; httponly; domain=test31.curl; path=/p3/;\r
-Set-Cookie: httpo4=value4 ; httponly=; domain=test31.curl; path=/p4/; \r
-Set-Cookie: httponly=myvalue1 ; domain=test31.curl; path=/p4/; httponly\r
-Set-Cookie: httpandsec=myvalue2 ; domain=test31.curl; path=/p4/; httponly; secure\r
-Set-Cookie: httpandsec2=myvalue3; domain=test31.curl; path=/p4/; httponly=; secure\r
-Set-Cookie: httpandsec3=myvalue4 ; domain=test31.curl; path=/p4/; httponly; secure=\r
-Set-Cookie: httpandsec4=myvalue5 ; domain=test31.curl; path=/p4/; httponly=; secure=\r
-Set-Cookie: httpandsec5=myvalue6 ; domain=test31.curl; path=/p4/; secure; httponly=\r
-Set-Cookie: httpandsec6=myvalue7 ; domain=test31.curl; path=/p4/; secure=; httponly=\r
-Set-Cookie: httpandsec7=myvalue8 ; domain=test31.curl; path=/p4/; secure; httponly\r
-Set-Cookie: httpandsec8=myvalue9; domain=test31.curl; path=/p4/; secure=; httponly\r
-Set-Cookie: partmatch=present; domain=test31.curl ; path=/;\r
-Set-Cookie:eat=this; domain=moo.foo.moo;\r
-Set-Cookie: eat=this-too; domain=.foo.moo;\r
-Set-Cookie: nodomainnovalue\r
+Set-Cookie: foobar=name; domain=anything.com; path=/ ; secure%CR
+Set-Cookie:ismatch=this ; domain=test31.curl; path=/silly/%CR
+Set-Cookie:ISMATCH=this ; domain=test31.curl; path=/silly/%CR
+Set-Cookie: overwrite=this ; domain=test31.curl; path=/overwrite/%CR
+Set-Cookie: overwrite=this2 ; domain=test31.curl; path=/overwrite%CR
+Set-Cookie: sec1value=secure1 ; domain=test31.curl; path=/secure1/ ; secure%CR
+Set-Cookie: sec2value=secure2 ; domain=test31.curl; path=/secure2/ ; secure=%CR
+Set-Cookie: sec3value=secure3 ; domain=test31.curl; path=/secure3/ ; secure=%CR
+Set-Cookie: sec4value=secure4 ; secure=; domain=test31.curl; path=/secure4/ ; %CR
+Set-Cookie: sec5value=secure5 ; secure; domain=test31.curl; path=/secure5/ ; %CR
+Set-Cookie: sec6value=secure6 ; secure ; domain=test31.curl; path=/secure6/ ; %CR
+Set-Cookie: sec7value=secure7 ; secure ; domain=test31.curl; path=/secure7/ ; %CR
+Set-Cookie: sec8value=secure8 ; secure= ; domain=test31.curl; path=/secure8/ ; %CR
+Set-Cookie: secure=very1 ; secure=; domain=test31.curl; path=/secure9/; %CR
+Set-Cookie: httpo1=value1 ; domain=test31.curl; path=/p1/; httponly%CR
+Set-Cookie: httpo2=value2 ; domain=test31.curl; path=/p2/; httponly=%CR
+Set-Cookie: httpo3=value3 ; httponly; domain=test31.curl; path=/p3/;%CR
+Set-Cookie: httpo4=value4 ; httponly=; domain=test31.curl; path=/p4/; %CR
+Set-Cookie: httponly=myvalue1 ; domain=test31.curl; path=/p4/; httponly%CR
+Set-Cookie: httpandsec=myvalue2 ; domain=test31.curl; path=/p4/; httponly; secure%CR
+Set-Cookie: httpandsec2=myvalue3; domain=test31.curl; path=/p4/; httponly=; secure%CR
+Set-Cookie: httpandsec3=myvalue4 ; domain=test31.curl; path=/p4/; httponly; secure=%CR
+Set-Cookie: httpandsec4=myvalue5 ; domain=test31.curl; path=/p4/; httponly=; secure=%CR
+Set-Cookie: httpandsec5=myvalue6 ; domain=test31.curl; path=/p4/; secure; httponly=%CR
+Set-Cookie: httpandsec6=myvalue7 ; domain=test31.curl; path=/p4/; secure=; httponly=%CR
+Set-Cookie: httpandsec7=myvalue8 ; domain=test31.curl; path=/p4/; secure; httponly%CR
+Set-Cookie: httpandsec8=myvalue9; domain=test31.curl; path=/p4/; secure=; httponly%CR
+Set-Cookie: partmatch=present; domain=test31.curl ; path=/;%CR
+Set-Cookie:eat=this; domain=moo.foo.moo;%CR
+Set-Cookie: eat=this-too; domain=.foo.moo;%CR
+Set-Cookie: nodomainnovalue%CR
%if large-time
-Set-Cookie: nodomain=value; expires=Fri Feb 13 11:56:27 GMT 2525\r
-Set-Cookie: novalue; domain=reallysilly\r
-Set-Cookie: test=yes; domain=foo.com; expires=Sat Feb 2 11:56:27 GMT 2525\r
-Set-Cookie: test2=yes; domain=se; expires=Sat Feb 2 11:56:27 GMT 2525\r
+Set-Cookie: nodomain=value; expires=Fri Feb 13 11:56:27 GMT 2525%CR
+Set-Cookie: novalue; domain=reallysilly%CR
+Set-Cookie: test=yes; domain=foo.com; expires=Sat Feb 2 11:56:27 GMT 2525%CR
+Set-Cookie: test2=yes; domain=se; expires=Sat Feb 2 11:56:27 GMT 2525%CR
%else
-Set-Cookie: nodomain=value; expires=Fri Feb 13 11:56:27 GMT 2037\r
-Set-Cookie: novalue; domain=reallysilly\r
-Set-Cookie: test=yes; domain=foo.com; expires=Sat Feb 2 11:56:27 GMT 2030\r
-Set-Cookie: test2=yes; domain=se; expires=Sat Feb 2 11:56:27 GMT 2030\r
+Set-Cookie: nodomain=value; expires=Fri Feb 13 11:56:27 GMT 2037%CR
+Set-Cookie: novalue; domain=reallysilly%CR
+Set-Cookie: test=yes; domain=foo.com; expires=Sat Feb 2 11:56:27 GMT 2030%CR
+Set-Cookie: test2=yes; domain=se; expires=Sat Feb 2 11:56:27 GMT 2030%CR
%endif
-Set-Cookie: magic=yessir; path=/silly/; HttpOnly\r
-Set-Cookie: blexp=yesyes; domain=test31.curl; domain=test31.curl; expiry=totally bad;\r
-Set-Cookie: partialip=nono; domain=.0.0.1;\r
-Set-Cookie: withspaces= yes within and around ;\r
-Set-Cookie: withspaces2 =before equals;\r
-Set-Cookie: prespace= yes before;\r
-Set-Cookie: securewithspace=after ; secure =\r
+Set-Cookie: magic=yessir; path=/silly/; HttpOnly%CR
+Set-Cookie: blexp=yesyes; domain=test31.curl; domain=test31.curl; expiry=totally bad;%CR
+Set-Cookie: partialip=nono; domain=.0.0.1;%CR
+Set-Cookie: withspaces= yes within and around ;%CR
+Set-Cookie: withspaces2 =before equals;%CR
+Set-Cookie: prespace= yes before;%CR
+Set-Cookie: securewithspace=after ; secure =%CR
Set-Cookie: %hex[%c3%82%c2%b3%c3%83%5c%78%39%32%c3%83%5c%78%39%61%c3%83%5c%78%38%64%c3%83%5c%78%39%37]hex%=%96%A6g%9Ay%B0%A5g%A7tm%7C%95%9A
-\r
+%CR
boo
</data>
</reply>
</data>
<datacheck>
-HTTP/1.1 200 OK\r
-Date: Mon, 29 Nov 2004 21:56:53 GMT\r
-Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29\r
-Vary: Accept-Encoding\r
-Content-Type: text/html; charset=ISO-8859-1\r
-Content-Encoding: br\r
-Content-Length: 1056\r
-\r
+HTTP/1.1 200 OK%CR
+Date: Mon, 29 Nov 2004 21:56:53 GMT%CR
+Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29%CR
+Vary: Accept-Encoding%CR
+Content-Type: text/html; charset=ISO-8859-1%CR
+Content-Encoding: br%CR
+Content-Length: 1056%CR
+%CR
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE project-listing SYSTEM "http://freshmeat.net/backend/fm-projects-0.4.dtd">
<project-listing>
<projectname_short>curl</projectname_short>
<projectname_full>curl and libcurl</projectname_full>
<desc_short>Command line tool and library for client-side URL transfers.</desc_short>
- <desc_full>curl and libcurl is a tool for transferring files\r
-using URL syntax. It supports HTTP, HTTPS, FTP,\r
-FTPS, DICT, TELNET, LDAP, FILE, and GOPHER, as\r
-well as HTTP-post, HTTP-put, cookies, FTP upload,\r
-resumed transfers, passwords, portnumbers, SSL\r
-certificates, Kerberos, and proxies. It is powered\r
-by libcurl, the client-side URL transfer library.\r
-There are bindings to libcurl for over 20\r
-languages and environments.\r
+ <desc_full>curl and libcurl is a tool for transferring files%CR
+using URL syntax. It supports HTTP, HTTPS, FTP,%CR
+FTPS, DICT, TELNET, LDAP, FILE, and GOPHER, as%CR
+well as HTTP-post, HTTP-put, cookies, FTP upload,%CR
+resumed transfers, passwords, portnumbers, SSL%CR
+certificates, Kerberos, and proxies. It is powered%CR
+by libcurl, the client-side URL transfer library.%CR
+There are bindings to libcurl for over 20%CR
+languages and environments.%CR
</desc_full>
<vitality_score>5784.57</vitality_score>
<vitality_percent>3.16</vitality_percent>
# Server-side
<reply>
<data nocheck="yes">
-HTTP/1.0 200 OK\r
-Content-type: text/html\r
-\r
+HTTP/1.0 200 OK%CR
+Content-type: text/html%CR
+%CR
<HTML><BODY>
<CENTER><H1>This is <a href="http://www.gnu.org/software/gnutls">GnuTLS</a></H1></CENTER>
<TR><TD>Cipher</TD><TD>AES-NNN-CBC</TD></TR>
<TR><TD>MAC</TD><TD>SHA1</TD></TR>
<TR><TD>Ciphersuite</TD><TD>SRP_SHA_AES_NNN_CBC_SHA1</TD></TR></p></TABLE>
-<hr><P>Your HTTP header was:<PRE>Host: localhost:9011\r
-User-Agent: curl-test-suite\r
-Accept: */*\r
-\r
+<hr><P>Your HTTP header was:<PRE>Host: localhost:9011%CR
+User-Agent: curl-test-suite%CR
+Accept: */*%CR
+%CR
</PRE></P>
</BODY></HTML>
%repeat[120 x Testing large IMAP literal with custom FETCH. XXXXXXXXXXXXX%0d]%
</data>
<datacheck>
-* 456 FETCH (BODY[TEXT] {7201}\r
+* 456 FETCH (BODY[TEXT] {7201}%CR
%repeat[120 x Testing large IMAP literal with custom FETCH. XXXXXXXXXXXXX%0d]%
</datacheck>
</reply>
# Server-side
<reply>
<data>
-HTTP/1.1 200 OK\r
-Date: Mon, 29 Nov 2004 21:56:53 GMT\r
-Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29\r
-Content-Type: text/html; charset=ISO-8859-1\r
-Transfer-Encoding: chunked\r
-\r
-18\r
+HTTP/1.1 200 OK%CR
+Date: Mon, 29 Nov 2004 21:56:53 GMT%CR
+Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29%CR
+Content-Type: text/html; charset=ISO-8859-1%CR
+Transfer-Encoding: chunked%CR
+%CR
+18%CR
line 1
line 2
line 3
-\r
-0\r
-\r
+%CR
+0%CR
+%CR
</data>
<datacheck>
-18\r
+18%CR
line 1
line 2
line 3
-\r
-0\r
-\r
+%CR
+0%CR
+%CR
</datacheck>
</reply>
# Server-side
<reply>
<data nocheck="yes">
-HTTP/1.1 200 funky chunky!\r
-Server: fakeit/0.9 fakeitbad/1.0\r
-Transfer-Encoding: chunked\r
-Trailer: chunky-trailer\r
-Connection: mooo\r
-ETag: W/"asdf"\r
-\r
-40\r
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
-30\r
-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r
-21;heresatest=moooo\r
+HTTP/1.1 200 funky chunky!%CR
+Server: fakeit/0.9 fakeitbad/1.0%CR
+Transfer-Encoding: chunked%CR
+Trailer: chunky-trailer%CR
+Connection: mooo%CR
+ETag: W/"asdf"%CR
+%CR
+40%CR
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%CR
+30%CR
+bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%CR
+21;heresatest=moooo%CR
cccccccccccccccccccccccccccccccc
-\r
-0\r
-chunky-trailer: header data\r
-\r
+%CR
+0%CR
+chunky-trailer: header data%CR
+%CR
</data>
</reply>
Transfer-Encoding: chunked
Connection: mooo
-40\r
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
-30\r
-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r
-21;heresatest=moooo\r
+40%CR
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%CR
+30%CR
+bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%CR
+21;heresatest=moooo%CR
cccccccccccccccccccccccccccccccc
-\r
-0\r
-\r
+%CR
+0%CR
+%CR
</data>
<datacheck>
HTTP/1.1 200 funky chunky!
# Server-side
<reply>
<data nocheck="yes">
-HTTP/1.1 200 funky chunky!\r
-Server: fakeit/0.9 fakeitbad/1.0\r
-Transfer-Encoding: chunked\r
-Trailer: chunky-trailer\r
-Connection: mooo\r
-ETag: "asdf"\r
-\r
+HTTP/1.1 200 funky chunky!%CR
+Server: fakeit/0.9 fakeitbad/1.0%CR
+Transfer-Encoding: chunked%CR
+Trailer: chunky-trailer%CR
+Connection: mooo%CR
+ETag: "asdf"%CR
+%CR
40
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
30
# Server-side
<reply>
<data nocheck="yes">
-HTTP/1.1 200 funky chunky!\r
-Server: fakeit/0.9 fakeitbad/1.0\r
-Transfer-Encoding: chunked\r
-Trailer: chunky-trailer\r
-Connection: mooo\r
-ETag: \r
-\r
-40\r
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
-30\r
-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r
-21;heresatest=moooo\r
+HTTP/1.1 200 funky chunky!%CR
+Server: fakeit/0.9 fakeitbad/1.0%CR
+Transfer-Encoding: chunked%CR
+Trailer: chunky-trailer%CR
+Connection: mooo%CR
+ETag: %CR
+%CR
+40%CR
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%CR
+30%CR
+bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%CR
+21;heresatest=moooo%CR
cccccccccccccccccccccccccccccccc
-\r
-0\r
-chunky-trailer: header data\r
-\r
+%CR
+0%CR
+chunky-trailer: header data%CR
+%CR
</data>
</reply>
Transfer-Encoding: chunked
Connection: mooo
-2\r
+2%CR
a
-\r
-ILLEGAL\r
-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r
+%CR
+ILLEGAL%CR
+bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%CR
</data>
<datacheck>
HTTP/1.1 200 funky chunky!
</connect>
<datacheck>
-HTTP/1.1 200 Mighty fine indeed\r
-\r
+HTTP/1.1 200 Mighty fine indeed%CR
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Content-Type: text/html
Funny-head: yesyes
-10\r
-chunked data fun\r
-0\r
-\r
+10%CR
+chunked data fun%CR
+0%CR
+%CR
</data>
<datacheck nonewline="yes">
HTTP/1.1 200 OK
<reply>
<data>
-HTTP/1.1 200 OK\r
-Date: Thu, 22 Jul 2010 11:22:33 GMT\r
-Connection: close\r
-Content-Type: text/html\r
-Transfer-Encoding: chunked\r
-X-Control: swsclose\r
-\r
-100\r
+HTTP/1.1 200 OK%CR
+Date: Thu, 22 Jul 2010 11:22:33 GMT%CR
+Connection: close%CR
+Content-Type: text/html%CR
+Transfer-Encoding: chunked%CR
+X-Control: swsclose%CR
+%CR
+100%CR
%repeat[255 x %00]%
-\r
-100\r
+%CR
+100%CR
%repeat[255 x %00]%
-\r
-100\r
+%CR
+100%CR
%repeat[255 x %00]%
-\r
-100\r
+%CR
+100%CR
%repeat[255 x %00]%
-\r
-0\r
-\r
+%CR
+0%CR
+%CR
</data>
<datacheck crlf="headers">
^(Content-Type: multipart/form-data;|-------).*
</strip>
<protocol>
-POST /we/want/%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Content-Length: 1234\r
-Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32\r
-\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="name"\r
-\r
-daniel\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="tool"\r
-\r
-curl\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="str1"\r
-\r
-@literal\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="str2"\r
-\r
-<verbatim;type=xxx/yyy\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="file"; filename="fakerfile"\r
-Content-Type: moo/foobar\r
-\r
+POST /we/want/%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Content-Length: 1234%CR
+Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32%CR
+%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="name"%CR
+%CR
+daniel%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="tool"%CR
+%CR
+curl%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="str1"%CR
+%CR
+@literal%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="str2"%CR
+%CR
+<verbatim;type=xxx/yyy%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="file"; filename="fakerfile"%CR
+Content-Type: moo/foobar%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="file2"; filename="test%TESTNUMBER.txt"\r
-Content-Type: text/plain\r
-\r
+%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="file2"; filename="test%TESTNUMBER.txt"%CR
+Content-Type: text/plain%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="file3"; filename="f\\ak\\er,\an\d;.t%22xt"\r
-Content-Type: mo/foo\r
-\r
+%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="file3"; filename="f\\ak\\er,\an\d;.t%22xt"%CR
+Content-Type: mo/foo%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="file4"; filename="A\AA%22%22\%22ZZZ"\r
-Content-Type: text/plain\r
-\r
+%CR
+------------------------------24e78000bd32%CR
+Content-Disposition: form-data; name="file4"; filename="A\AA%22%22\%22ZZZ"%CR
+Content-Type: text/plain%CR
+%CR
foo bar
This is a bar foo
bar
foo
-\r
-------------------------------24e78000bd32--\r
+%CR
+------------------------------24e78000bd32--%CR
</protocol>
</verify>
</testcase>
</data>
<datacheck>
-HTTP/1.1 200 OK\r
-Date: Mon, 29 Nov 2004 21:56:53 GMT\r
-Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29\r
-Vary: Accept-Encoding\r
-Content-Type: text/html; charset=ISO-8859-1\r
-Content-Encoding: zstd\r
-Content-Length: 1309\r
-\r
+HTTP/1.1 200 OK%CR
+Date: Mon, 29 Nov 2004 21:56:53 GMT%CR
+Server: Apache/1.3.31 (Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.9-1 mod_ssl/2.8.20 OpenSSL/0.9.7d mod_perl/1.29%CR
+Vary: Accept-Encoding%CR
+Content-Type: text/html; charset=ISO-8859-1%CR
+Content-Encoding: zstd%CR
+Content-Length: 1309%CR
+%CR
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE project-listing SYSTEM "http://freshmeat.net/backend/fm-projects-0.4.dtd">
<project-listing>
<projectname_short>curl</projectname_short>
<projectname_full>curl and libcurl</projectname_full>
<desc_short>Command line tool and library for client-side URL transfers.</desc_short>
- <desc_full>curl and libcurl is a tool for transferring files\r
-using URL syntax. It supports HTTP, HTTPS, FTP,\r
-FTPS, DICT, TELNET, LDAP, FILE, and GOPHER, as\r
-well as HTTP-post, HTTP-put, cookies, FTP upload,\r
-resumed transfers, passwords, portnumbers, SSL\r
-certificates, Kerberos, and proxies. It is powered\r
-by libcurl, the client-side URL transfer library.\r
-There are bindings to libcurl for over 20\r
-languages and environments.\r
+ <desc_full>curl and libcurl is a tool for transferring files%CR
+using URL syntax. It supports HTTP, HTTPS, FTP,%CR
+FTPS, DICT, TELNET, LDAP, FILE, and GOPHER, as%CR
+well as HTTP-post, HTTP-put, cookies, FTP upload,%CR
+resumed transfers, passwords, portnumbers, SSL%CR
+certificates, Kerberos, and proxies. It is powered%CR
+by libcurl, the client-side URL transfer library.%CR
+There are bindings to libcurl for over 20%CR
+languages and environments.%CR
</desc_full>
<vitality_score>5784.57</vitality_score>
<vitality_percent>3.16</vitality_percent>
<data>
HTTP/1.1 200 OK swsclose
Date: Tue, 09 Nov 2010 14:49:00 GMT
-Content-Length: \r-6
+Content-Length: %CR-6
Content-Type: text/html
Funny-head: yesyes
# Server-side
<reply>
<data>
-HTTP/1.1 200 OK\r
-Content-Length: 6\r
-Content-Type: text/1\r
-\r
+HTTP/1.1 200 OK%CR
+Content-Length: 6%CR
+Content-Type: text/1%CR
+%CR
-foo-
</data>
</reply>
^(Content-Type: multipart/form-data;|------).*
</strip>
<protocol>
-POST /we/want/%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Content-Length: 432\r
-Content-Type: multipart/form-data; boundary=----------------------------7c633d5c27ce\r
-\r
-------------------------------7c633d5c27ce\r
-Content-Disposition: form-data; name="name"\r
-\r
-daniel\r
-------------------------------7c633d5c27ce\r
-Content-Disposition: form-data; name="tool"\r
-\r
-curl\r
-------------------------------7c633d5c27ce\r
-Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER.txt"\r
-Content-Type: text/plain\r
-\r
+POST /we/want/%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Content-Length: 432%CR
+Content-Type: multipart/form-data; boundary=----------------------------7c633d5c27ce%CR
+%CR
+------------------------------7c633d5c27ce%CR
+Content-Disposition: form-data; name="name"%CR
+%CR
+daniel%CR
+------------------------------7c633d5c27ce%CR
+Content-Disposition: form-data; name="tool"%CR
+%CR
+curl%CR
+------------------------------7c633d5c27ce%CR
+Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER.txt"%CR
+Content-Type: text/plain%CR
+%CR
foo-
This is a moo-
bar
-\r
-------------------------------7c633d5c27ce--\r
+%CR
+------------------------------7c633d5c27ce--%CR
</protocol>
</verify>
</testcase>
Transfer-Encoding: chunked
Connection: mooo
-40\r
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
-30\r
-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r
-21;heresatest=moooo\r
+40%CR
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%CR
+30%CR
+bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%CR
+21;heresatest=moooo%CR
cccccccccccccccccccccccccccccc
c
-\r
-0\r
-\r
+%CR
+0%CR
+%CR
</data>
<datacheck>
HTTP/1.1 200 funky chunky!
# Server-side
<reply>
<data nocheck="yes">
-HTTP/1.1 301 funky chunky!\r
-Server: fakeit/0.9 fakeitbad/1.0\r
+HTTP/1.1 301 funky chunky!%CR
+Server: fakeit/0.9 fakeitbad/1.0%CR
Location: /redirected
-Transfer-Encoding: chunked\r
-Trailer: chunky-trailer\r
-Connection: mooo\r
-ETag: W/"asdf"\r
-\r
-40\r
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r
-30\r
-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\r
-21;heresatest=moooo\r
+Transfer-Encoding: chunked%CR
+Trailer: chunky-trailer%CR
+Connection: mooo%CR
+ETag: W/"asdf"%CR
+%CR
+40%CR
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%CR
+30%CR
+bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb%CR
+21;heresatest=moooo%CR
cccccccccccccccccccccccccccccccc
-\r
-0\r
-chunky-trailer: header data\r
-\r
+%CR
+0%CR
+chunky-trailer: header data%CR
+%CR
</data>
</reply>
</data>
<datacheck>
-HTTP/1.1 200 Mighty fine indeed\r
-\r
+HTTP/1.1 200 Mighty fine indeed%CR
+%CR
HTTP/1.1 200 OK swsclose
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
# Verify data after the test has been "shot"
<verify>
<protocol nonewline="yes">
-POST http://test.remote.example.com/path/%TESTNUMBER HTTP/1.1\r
-Host: test.remote.example.com\r
-Accept: */*\r
-Proxy-Connection: Keep-Alive\r
-Content-Length: 70000\r
-Content-Type: application/x-www-form-urlencoded\r
-\r
-%repeat[7000 x test data%00]%POST http://test.remote.example.com/path/%TESTNUMBER HTTP/1.1\r
-Host: test.remote.example.com\r
-Proxy-Authorization: Digest username="s1lly", realm="something fun to read", nonce="%repeat[400 x A]%", uri="/path/%TESTNUMBER", response="be7aedc47d821b6d847c445ded782c43"\r
-Accept: */*\r
-Proxy-Connection: Keep-Alive\r
-Content-Length: 70000\r
-Content-Type: application/x-www-form-urlencoded\r
-\r
+POST http://test.remote.example.com/path/%TESTNUMBER HTTP/1.1%CR
+Host: test.remote.example.com%CR
+Accept: */*%CR
+Proxy-Connection: Keep-Alive%CR
+Content-Length: 70000%CR
+Content-Type: application/x-www-form-urlencoded%CR
+%CR
+%repeat[7000 x test data%00]%POST http://test.remote.example.com/path/%TESTNUMBER HTTP/1.1%CR
+Host: test.remote.example.com%CR
+Proxy-Authorization: Digest username="s1lly", realm="something fun to read", nonce="%repeat[400 x A]%", uri="/path/%TESTNUMBER", response="be7aedc47d821b6d847c445ded782c43"%CR
+Accept: */*%CR
+Proxy-Connection: Keep-Alive%CR
+Content-Length: 70000%CR
+Content-Type: application/x-www-form-urlencoded%CR
+%CR
%repeat[7000 x test data%00]%
</protocol>
</verify>
# boundary string and since 5 of them are in the body contents, we see
# (5*12) == 60 bytes less
<protocol>
-POST /%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-Accept: */*\r
-Content-Length: 780\r
-Content-Type: multipart/form-data; boundary=----------------------------\r
-\r
-------------------------------\r
-Content-Disposition: form-data; name="sendfile"; filename="postit2.c"\r
-\r
+POST /%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+Accept: */*%CR
+Content-Length: 780%CR
+Content-Type: multipart/form-data; boundary=----------------------------%CR
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="sendfile"; filename="postit2.c"%CR
+%CR
this is what we post to the silly web server
-\r
-------------------------------\r
-Content-Disposition: form-data; name="callbackdata"\r
-\r
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="callbackdata"%CR
+%CR
this is what we post to the silly web server
-\r
-------------------------------\r
-Content-Disposition: form-data; name="filename"\r
-\r
-postit2.c\r
-------------------------------\r
-Content-Disposition: form-data; name="submit"\r
-Content-Type: text/plain\r
-\r
-send\r
-------------------------------\r
-Content-Disposition: form-data; name="somename"; filename="somefile.txt"\r
-Content-Type: text/plain\r
-\r
-blah blah\r
---------------------------------\r
-POST /%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-Accept: */*\r
-Content-Length: 794\r
-Content-Type: multipart/form-data; boundary=----------------------------\r
-\r
-------------------------------\r
-Content-Disposition: form-data; name="sendfile alternative"; filename="file name 2"\r
-\r
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="filename"%CR
+%CR
+postit2.c%CR
+------------------------------%CR
+Content-Disposition: form-data; name="submit"%CR
+Content-Type: text/plain%CR
+%CR
+send%CR
+------------------------------%CR
+Content-Disposition: form-data; name="somename"; filename="somefile.txt"%CR
+Content-Type: text/plain%CR
+%CR
+blah blah%CR
+--------------------------------%CR
+POST /%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+Accept: */*%CR
+Content-Length: 794%CR
+Content-Type: multipart/form-data; boundary=----------------------------%CR
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="sendfile alternative"; filename="file name 2"%CR
+%CR
this is what we post to the silly web server
-\r
-------------------------------\r
-Content-Disposition: form-data; name="callbackdata"\r
-\r
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="callbackdata"%CR
+%CR
this is what we post to the silly web server
-\r
-------------------------------\r
-Content-Disposition: form-data; name="filename"\r
-\r
-postit2.c\r
-------------------------------\r
-Content-Disposition: form-data; name="submit"\r
-Content-Type: text/plain\r
-\r
-send\r
-------------------------------\r
-Content-Disposition: form-data; name="somename"; filename="somefile.txt"\r
-Content-Type: text/plain\r
-\r
-blah blah\r
---------------------------------\r
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="filename"%CR
+%CR
+postit2.c%CR
+------------------------------%CR
+Content-Disposition: form-data; name="submit"%CR
+Content-Type: text/plain%CR
+%CR
+send%CR
+------------------------------%CR
+Content-Disposition: form-data; name="somename"; filename="somefile.txt"%CR
+Content-Type: text/plain%CR
+%CR
+blah blah%CR
+--------------------------------%CR
</protocol>
</verify>
</testcase>
</data1>
<data2>
-RTSP/1.0 200 OK\r
-Server: RTSPD/libcurl-test\r
-Cseq: 2\r
-Content-Length: 70\r
-Content-Type: application/sdp\r
-\r
+RTSP/1.0 200 OK%CR
+Server: RTSPD/libcurl-test%CR
+Cseq: 2%CR
+Content-Length: 70%CR
+Content-Type: application/sdp%CR
+%CR
v=0
s=rtspd SDP
i=A fake SDP reply
</data>
<datacheck>
[OPEN] counter: 1
-HTTP/1.1 302 eat this!\r
-Date: Tue, 09 Nov 2010 14:49:00 GMT\r
-Server: test-server/fake\r
-Location: this-is-the-first.html\r
-Content-Length: 0\r
-Connection: close\r
-\r
+HTTP/1.1 302 eat this!%CR
+Date: Tue, 09 Nov 2010 14:49:00 GMT%CR
+Server: test-server/fake%CR
+Location: this-is-the-first.html%CR
+Content-Length: 0%CR
+Connection: close%CR
+%CR
[CLOSE] counter: 1
</datacheck>
</reply>
-foo-
</data>
<data1>
-HTTP/1.1 200 OK\r
-Date: Tue, 09 Nov 2010 14:49:00 GMT\r
-Server: test-server/fake\r
-Transfer-Encoding: chunked\r
-Connection: close\r
-Content-Type: text/html\r
-\r
-32\r
+HTTP/1.1 200 OK%CR
+Date: Tue, 09 Nov 2010 14:49:00 GMT%CR
+Server: test-server/fake%CR
+Transfer-Encoding: chunked%CR
+Connection: close%CR
+Content-Type: text/html%CR
+%CR
+32%CR
this data is slightly larger than the first piece
-\r
-0\r
-\r
+%CR
+0%CR
+%CR
</data1>
<datacheck crlf="headers">
# Verify data after the test has been "shot"
<verify>
<protocol>
-PUT /bzz/%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Transfer-Encoding: chunked\r
-Content-Length: 1\r
-Expect: 100-continue\r
-\r
-13\r
+PUT /bzz/%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Transfer-Encoding: chunked%CR
+Content-Length: 1%CR
+Expect: 100-continue%CR
+%CR
+13%CR
more than one byte
-\r
-0\r
-\r
+%CR
+0%CR
+%CR
</protocol>
</verify>
</testcase>
# boundary string and since 5 of them are in the body contents, we see
# (5*12) == 60 bytes less
<protocol>
-POST /%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-Accept: */*\r
-Content-Length: 676\r
-Content-Type: multipart/form-data; boundary=----------------------------\r
-\r
-------------------------------\r
-Content-Disposition: form-data; name="sendfile"; filename="postit2.c"\r
-\r
+POST /%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+Accept: */*%CR
+Content-Length: 676%CR
+Content-Type: multipart/form-data; boundary=----------------------------%CR
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="sendfile"; filename="postit2.c"%CR
+%CR
dummy
-\r
-------------------------------\r
-Content-Disposition: form-data; name="callbackdata"\r
-\r
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="callbackdata"%CR
+%CR
dummy
-\r
-------------------------------\r
-Content-Disposition: form-data; name="filename"\r
-\r
-postit2.c\r
-------------------------------\r
-Content-Disposition: form-data; name="submit"\r
-\r
-send\r
-------------------------------\r
-Content-Disposition: form-data; name="somename"; filename="somefile.txt"\r
-Content-Type: text/plain\r
-\r
-blah blah\r
---------------------------------\r
-POST /%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-Accept: */*\r
-Content-Length: 690\r
-Content-Type: multipart/form-data; boundary=----------------------------\r
-\r
-------------------------------\r
-Content-Disposition: form-data; name="sendfile alternative"; filename="file name 2"\r
-\r
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="filename"%CR
+%CR
+postit2.c%CR
+------------------------------%CR
+Content-Disposition: form-data; name="submit"%CR
+%CR
+send%CR
+------------------------------%CR
+Content-Disposition: form-data; name="somename"; filename="somefile.txt"%CR
+Content-Type: text/plain%CR
+%CR
+blah blah%CR
+--------------------------------%CR
+POST /%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+Accept: */*%CR
+Content-Length: 690%CR
+Content-Type: multipart/form-data; boundary=----------------------------%CR
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="sendfile alternative"; filename="file name 2"%CR
+%CR
dummy
-\r
-------------------------------\r
-Content-Disposition: form-data; name="callbackdata"\r
-\r
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="callbackdata"%CR
+%CR
dummy
-\r
-------------------------------\r
-Content-Disposition: form-data; name="filename"\r
-\r
-postit2.c\r
-------------------------------\r
-Content-Disposition: form-data; name="submit"\r
-\r
-send\r
-------------------------------\r
-Content-Disposition: form-data; name="somename"; filename="somefile.txt"\r
-Content-Type: text/plain\r
-\r
-blah blah\r
---------------------------------\r
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="filename"%CR
+%CR
+postit2.c%CR
+------------------------------%CR
+Content-Disposition: form-data; name="submit"%CR
+%CR
+send%CR
+------------------------------%CR
+Content-Disposition: form-data; name="somename"; filename="somefile.txt"%CR
+Content-Type: text/plain%CR
+%CR
+blah blah%CR
+--------------------------------%CR
</protocol>
</verify>
</testcase>
# boundary string and since 5 of them are in the body contents, we see
# (5*12) == 60 bytes less
<protocol>
-POST /%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-Accept: */*\r
-Transfer-Encoding: chunked\r
-Content-Type: multipart/form-data; boundary=----------------------------\r
-Expect: 100-continue\r
-\r
-7c\r
-------------------------------\r
-Content-Disposition: form-data; name="sendfile"; filename="postit2.c"\r
-\r
-d\r
-1\r
-u\r
-1\r
-m\r
-1\r
-m\r
-1\r
-y\r
-1\r
+POST /%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+Accept: */*%CR
+Transfer-Encoding: chunked%CR
+Content-Type: multipart/form-data; boundary=----------------------------%CR
+Expect: 100-continue%CR
+%CR
+7c%CR
+------------------------------%CR
+Content-Disposition: form-data; name="sendfile"; filename="postit2.c"%CR
+%CR
+d%CR
+1%CR
+u%CR
+1%CR
+m%CR
+1%CR
+m%CR
+1%CR
+y%CR
+1%CR
-\r
-6b\r
-\r
-------------------------------\r
-Content-Disposition: form-data; name="callbackdata"\r
-\r
-\r
-1\r
-d\r
-1\r
-u\r
-1\r
-m\r
-1\r
-m\r
-1\r
-y\r
-1\r
+%CR
+6b%CR
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="callbackdata"%CR
+%CR
+%CR
+1%CR
+d%CR
+1%CR
+u%CR
+1%CR
+m%CR
+1%CR
+m%CR
+1%CR
+y%CR
+1%CR
-\r
-1b2\r
-\r
-------------------------------\r
-Content-Disposition: form-data; name="filename"\r
-\r
-postit2.c\r
-------------------------------\r
-Content-Disposition: form-data; name="submit"\r
-\r
-send\r
-------------------------------\r
-Content-Disposition: form-data; name="somename"; filename="somefile.txt"\r
-Content-Type: text/plain\r
-\r
-blah blah\r
---------------------------------\r
-\r
-0\r
-\r
-POST /%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-Accept: */*\r
-Transfer-Encoding: chunked\r
-Content-Type: multipart/form-data; boundary=----------------------------\r
-Expect: 100-continue\r
-\r
-8a\r
-------------------------------\r
-Content-Disposition: form-data; name="sendfile alternative"; filename="file name 2"\r
-\r
-d\r
-1\r
-u\r
-1\r
-m\r
-1\r
-m\r
-1\r
-y\r
-1\r
+%CR
+1b2%CR
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="filename"%CR
+%CR
+postit2.c%CR
+------------------------------%CR
+Content-Disposition: form-data; name="submit"%CR
+%CR
+send%CR
+------------------------------%CR
+Content-Disposition: form-data; name="somename"; filename="somefile.txt"%CR
+Content-Type: text/plain%CR
+%CR
+blah blah%CR
+--------------------------------%CR
+%CR
+0%CR
+%CR
+POST /%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+Accept: */*%CR
+Transfer-Encoding: chunked%CR
+Content-Type: multipart/form-data; boundary=----------------------------%CR
+Expect: 100-continue%CR
+%CR
+8a%CR
+------------------------------%CR
+Content-Disposition: form-data; name="sendfile alternative"; filename="file name 2"%CR
+%CR
+d%CR
+1%CR
+u%CR
+1%CR
+m%CR
+1%CR
+m%CR
+1%CR
+y%CR
+1%CR
-\r
-6b\r
-\r
-------------------------------\r
-Content-Disposition: form-data; name="callbackdata"\r
-\r
-\r
-1\r
-d\r
-1\r
-u\r
-1\r
-m\r
-1\r
-m\r
-1\r
-y\r
-1\r
+%CR
+6b%CR
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="callbackdata"%CR
+%CR
+%CR
+1%CR
+d%CR
+1%CR
+u%CR
+1%CR
+m%CR
+1%CR
+m%CR
+1%CR
+y%CR
+1%CR
-\r
-1b2\r
-\r
-------------------------------\r
-Content-Disposition: form-data; name="filename"\r
-\r
-postit2.c\r
-------------------------------\r
-Content-Disposition: form-data; name="submit"\r
-\r
-send\r
-------------------------------\r
-Content-Disposition: form-data; name="somename"; filename="somefile.txt"\r
-Content-Type: text/plain\r
-\r
-blah blah\r
---------------------------------\r
-\r
-0\r
-\r
+%CR
+1b2%CR
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="filename"%CR
+%CR
+postit2.c%CR
+------------------------------%CR
+Content-Disposition: form-data; name="submit"%CR
+%CR
+send%CR
+------------------------------%CR
+Content-Disposition: form-data; name="somename"; filename="somefile.txt"%CR
+Content-Type: text/plain%CR
+%CR
+blah blah%CR
+--------------------------------%CR
+%CR
+0%CR
+%CR
</protocol>
</verify>
</testcase>
</file1>
<file2 name="%LOGDIR/headers%TESTNUMBER">
# This line is a comment
-X-fileheader1: This is a header from a file%SP\r
+X-fileheader1: This is a header from a file%SP%CR
# This line is another comment. It precedes a folded header.
X-fileheader2: This is #a
QUIT
</protocol>
<upload>
-Content-Type: multipart/mixed; boundary=----------------------------\r
-Mime-Version: 1.0\r
-From: different\r
-To: another\r
-Reply-To: <followup@example.com>\r
-\r
-------------------------------\r
-Content-Type: multipart/alternative; boundary=----------------------------\r
-\r
-------------------------------\r
-Content-Type: text/html\r
-Content-Transfer-Encoding: 8bit\r
-X-test1: this is a header\r
-X-test2: this is another header\r
-\r
-<body>This is the html version</body>\r
-------------------------------\r
-X-fileheader1: This is a header from a file\r
-X-fileheader2: This is #a folded header\r
-\r
-This is the plain text version\r
---------------------------------\r
-\r
-------------------------------\r
-Content-Disposition: attachment; filename="test%TESTNUMBER.txt"\r
-X-fileheader1: This is a header from a file\r
-X-fileheader2: This is #a folded header\r
-\r
+Content-Type: multipart/mixed; boundary=----------------------------%CR
+Mime-Version: 1.0%CR
+From: different%CR
+To: another%CR
+Reply-To: <followup@example.com>%CR
+%CR
+------------------------------%CR
+Content-Type: multipart/alternative; boundary=----------------------------%CR
+%CR
+------------------------------%CR
+Content-Type: text/html%CR
+Content-Transfer-Encoding: 8bit%CR
+X-test1: this is a header%CR
+X-test2: this is another header%CR
+%CR
+<body>This is the html version</body>%CR
+------------------------------%CR
+X-fileheader1: This is a header from a file%CR
+X-fileheader2: This is #a folded header%CR
+%CR
+This is the plain text version%CR
+--------------------------------%CR
+%CR
+------------------------------%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER.txt"%CR
+X-fileheader1: This is a header from a file%CR
+X-fileheader2: This is #a folded header%CR
+%CR
This is an attached file.
It may contain any type of data.
-\r
---------------------------------\r
-.\r
+%CR
+--------------------------------%CR
+.%CR
</upload>
</verify>
</testcase>
A004 LOGOUT
</protocol>
<upload>
-Content-Type: multipart/mixed; boundary=----------------------------\r
-Mime-Version: 1.0\r
-Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)\r
-From: Fred Foobar <foobar@example.com>\r
-To: joe@example.com\r
-Message-Id: <B27397-0100000@example.com>\r
-Subject: afternoon meeting\r
-\r
-------------------------------\r
-Content-Type: multipart/alternative; boundary=----------------------------\r
-\r
-------------------------------\r
-Content-Type: text/html\r
-Content-Transfer-Encoding: 8bit\r
-\r
-<body>This is the html version</body>\r
-------------------------------\r
-\r
-This is the plain text version\r
---------------------------------\r
-\r
-------------------------------\r
-Content-Disposition: attachment; filename="test%TESTNUMBER.txt"\r
-\r
+Content-Type: multipart/mixed; boundary=----------------------------%CR
+Mime-Version: 1.0%CR
+Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)%CR
+From: Fred Foobar <foobar@example.com>%CR
+To: joe@example.com%CR
+Message-Id: <B27397-0100000@example.com>%CR
+Subject: afternoon meeting%CR
+%CR
+------------------------------%CR
+Content-Type: multipart/alternative; boundary=----------------------------%CR
+%CR
+------------------------------%CR
+Content-Type: text/html%CR
+Content-Transfer-Encoding: 8bit%CR
+%CR
+<body>This is the html version</body>%CR
+------------------------------%CR
+%CR
+This is the plain text version%CR
+--------------------------------%CR
+%CR
+------------------------------%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER.txt"%CR
+%CR
This is an attached file.
It may contain any type of data.
-\r
---------------------------------\r
+%CR
+--------------------------------%CR
</upload>
</verify>
</testcase>
# boundary string and since 5 of them are in the body contents, we see
# (5*12) == 60 bytes less
<protocol>
-POST /%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-Accept: */*\r
-Transfer-Encoding: chunked\r
-Content-Type: multipart/form-data; boundary=----------------------------\r
-Expect: 100-continue\r
-\r
-385\r
-------------------------------\r
-Content-Disposition: form-data; name="fieldname"\r
-Content-Type: text/plain\r
-X-customheader-1: Header 1 data\r
-X-customheader-2: Header 2 data\r
-\r
-this is what we post to the silly web server\r
-------------------------------\r
-Content-Disposition: form-data; name="fieldnam"\r
-\r
-uhis is what we post to the silly web serve\r
-------------------------------\r
-Content-Disposition: form-data; name="multifile"\r
-Content-Type: multipart/mixed; boundary=----------------------------\r
-\r
-------------------------------\r
-Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"\r
-Content-Type: application/octet-stream\r
-\r
+POST /%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+Accept: */*%CR
+Transfer-Encoding: chunked%CR
+Content-Type: multipart/form-data; boundary=----------------------------%CR
+Expect: 100-continue%CR
+%CR
+385%CR
+------------------------------%CR
+Content-Disposition: form-data; name="fieldname"%CR
+Content-Type: text/plain%CR
+X-customheader-1: Header 1 data%CR
+X-customheader-2: Header 2 data%CR
+%CR
+this is what we post to the silly web server%CR
+------------------------------%CR
+Content-Disposition: form-data; name="fieldnam"%CR
+%CR
+uhis is what we post to the silly web serve%CR
+------------------------------%CR
+Content-Disposition: form-data; name="multifile"%CR
+Content-Type: multipart/mixed; boundary=----------------------------%CR
+%CR
+------------------------------%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"%CR
+Content-Type: application/octet-stream%CR
+%CR
This is data from a file.
-\r
-------------------------------\r
-Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"\r
-Content-Type: text/whatever\r
-\r
-\r
-ab\r
+%CR
+------------------------------%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"%CR
+Content-Type: text/whatever%CR
+%CR
+%CR
+ab%CR
This is data from a file.
-\r
-------------------------------\r
-Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"\r
-Content-Type: text/whatever\r
-\r
-\r
-bb\r
+%CR
+------------------------------%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"%CR
+Content-Type: text/whatever%CR
+%CR
+%CR
+bb%CR
This is data from a file.
-\r
---------------------------------\r
-\r
-------------------------------\r
-Content-Disposition: form-data; name="filecontents"\r
-\r
-\r
-11b\r
+%CR
+--------------------------------%CR
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="filecontents"%CR
+%CR
+%CR
+11b%CR
This is data from a file.
-\r
-------------------------------\r
-Content-Disposition: form-data; name="formlength"\r
-\r
-1433\r
-------------------------------\r
-Content-Disposition: form-data; name="standardinput"\r
-Content-Type: application/octet-stream\r
-\r
-\r
-16\r
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="formlength"%CR
+%CR
+1433%CR
+------------------------------%CR
+Content-Disposition: form-data; name="standardinput"%CR
+Content-Type: application/octet-stream%CR
+%CR
+%CR
+16%CR
Some data from stdin
-\r
-36\r
-\r
---------------------------------\r
-\r
-0\r
-\r
-POST /%TESTNUMBER0002 HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-Accept: */*\r
-Transfer-Encoding: chunked\r
-Content-Type: multipart/form-data; boundary=----------------------------\r
-Expect: 100-continue\r
-\r
-385\r
-------------------------------\r
-Content-Disposition: form-data; name="fieldname"\r
-Content-Type: text/plain\r
-X-customheader-1: Header 1 data\r
-X-customheader-2: Header 2 data\r
-\r
-this is what we post to the silly web server\r
-------------------------------\r
-Content-Disposition: form-data; name="fieldnam"\r
-\r
-uhis is what we post to the silly web serve\r
-------------------------------\r
-Content-Disposition: form-data; name="multifile"\r
-Content-Type: multipart/mixed; boundary=----------------------------\r
-\r
-------------------------------\r
-Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"\r
-Content-Type: application/octet-stream\r
-\r
+%CR
+36%CR
+%CR
+--------------------------------%CR
+%CR
+0%CR
+%CR
+POST /%TESTNUMBER0002 HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+Accept: */*%CR
+Transfer-Encoding: chunked%CR
+Content-Type: multipart/form-data; boundary=----------------------------%CR
+Expect: 100-continue%CR
+%CR
+385%CR
+------------------------------%CR
+Content-Disposition: form-data; name="fieldname"%CR
+Content-Type: text/plain%CR
+X-customheader-1: Header 1 data%CR
+X-customheader-2: Header 2 data%CR
+%CR
+this is what we post to the silly web server%CR
+------------------------------%CR
+Content-Disposition: form-data; name="fieldnam"%CR
+%CR
+uhis is what we post to the silly web serve%CR
+------------------------------%CR
+Content-Disposition: form-data; name="multifile"%CR
+Content-Type: multipart/mixed; boundary=----------------------------%CR
+%CR
+------------------------------%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"%CR
+Content-Type: application/octet-stream%CR
+%CR
This is data from a file.
-\r
-------------------------------\r
-Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"\r
-Content-Type: text/whatever\r
-\r
-\r
-ab\r
+%CR
+------------------------------%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"%CR
+Content-Type: text/whatever%CR
+%CR
+%CR
+ab%CR
This is data from a file.
-\r
-------------------------------\r
-Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"\r
-Content-Type: text/whatever\r
-\r
-\r
-bb\r
+%CR
+------------------------------%CR
+Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"%CR
+Content-Type: text/whatever%CR
+%CR
+%CR
+bb%CR
This is data from a file.
-\r
---------------------------------\r
-\r
-------------------------------\r
-Content-Disposition: form-data; name="filecontents"\r
-\r
-\r
-11b\r
+%CR
+--------------------------------%CR
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="filecontents"%CR
+%CR
+%CR
+11b%CR
This is data from a file.
-\r
-------------------------------\r
-Content-Disposition: form-data; name="formlength"\r
-\r
-1433\r
-------------------------------\r
-Content-Disposition: form-data; name="standardinput"\r
-Content-Type: application/octet-stream\r
-\r
-\r
-16\r
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="formlength"%CR
+%CR
+1433%CR
+------------------------------%CR
+Content-Disposition: form-data; name="standardinput"%CR
+Content-Type: application/octet-stream%CR
+%CR
+%CR
+16%CR
Some data from stdin
-\r
-36\r
-\r
---------------------------------\r
-\r
-0\r
-\r
+%CR
+36%CR
+%CR
+--------------------------------%CR
+%CR
+0%CR
+%CR
</protocol>
</verify>
</testcase>
# boundary string and since 5 of them are in the body contents, we see
# (5*12) == 60 bytes less
<protocol>
-POST /%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-Accept: */*\r
-Content-Length: 0\r
-\r
-POST /%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-Accept: */*\r
-Transfer-Encoding: chunked\r
-Content-Type: multipart/form-data; boundary=----------------------------\r
-Expect: 100-continue\r
-\r
-1c1\r
-------------------------------\r
-Content-Disposition: form-data; name="greeting"\r
-Content-Type: application/X-Greeting\r
-Content-Transfer-Encoding: base64\r
-X-Test-Number: %TESTNUMBER\r
-\r
-aGVsbG8=\r
-------------------------------\r
-Content-Disposition: form-data; filename="file%TESTNUMBER.txt"\r
-Content-Type: text/plain\r
-\r
+POST /%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+Accept: */*%CR
+Content-Length: 0%CR
+%CR
+POST /%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+Accept: */*%CR
+Transfer-Encoding: chunked%CR
+Content-Type: multipart/form-data; boundary=----------------------------%CR
+Expect: 100-continue%CR
+%CR
+1c1%CR
+------------------------------%CR
+Content-Disposition: form-data; name="greeting"%CR
+Content-Type: application/X-Greeting%CR
+Content-Transfer-Encoding: base64%CR
+X-Test-Number: %TESTNUMBER%CR
+%CR
+aGVsbG8=%CR
+------------------------------%CR
+Content-Disposition: form-data; filename="file%TESTNUMBER.txt"%CR
+Content-Type: text/plain%CR
+%CR
This is data from a file
-\r
-------------------------------\r
-Content-Disposition: form-data\r
-\r
-\r
-1\r
-d\r
-1\r
-u\r
-1\r
-m\r
-1\r
-m\r
-1\r
-y\r
-1\r
+%CR
+------------------------------%CR
+Content-Disposition: form-data%CR
+%CR
+%CR
+1%CR
+d%CR
+1%CR
+u%CR
+1%CR
+m%CR
+1%CR
+m%CR
+1%CR
+y%CR
+1%CR
-\r
-36\r
-\r
---------------------------------\r
-\r
-0\r
-\r
+%CR
+36%CR
+%CR
+--------------------------------%CR
+%CR
+0%CR
+%CR
</protocol>
</verify>
</testcase>
s/boundary=------------------------[A-Za-z0-9]*/boundary=----------------------------/
</strippart>
<protocol>
-POST /%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-Accept: */*\r
-Content-Length: 17237\r
-Content-Type: multipart/form-data; boundary=----------------------------\r
-\r
-------------------------------\r
-Content-Disposition: form-data; name="upfile"; filename="myfile.txt"\r
-Content-Type: text/plain\r
-Content-Transfer-Encoding: binary\r
-\r
+POST /%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+Accept: */*%CR
+Content-Length: 17237%CR
+Content-Type: multipart/form-data; boundary=----------------------------%CR
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="upfile"; filename="myfile.txt"%CR
+Content-Type: text/plain%CR
+Content-Transfer-Encoding: binary%CR
+%CR
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWX
ZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVW
YZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUV
RSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNO
QRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMN
PQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLM
-OPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUV\r
---------------------------------\r
+OPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUV%CR
+--------------------------------%CR
</protocol>
</verify>
</testcase>
# boundary string and since 5 of them are in the body contents, we see
# (5*12) == 60 bytes less
<protocol>
-POST /%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-Accept: */*\r
-Transfer-Encoding: chunked\r
-Content-Type: multipart/form-data; boundary=----------------------------\r
-Expect: 100-continue\r
-\r
-cd\r
-------------------------------\r
-Content-Disposition: form-data; name="field1"\r
-\r
-dummy\r
-------------------------------\r
-Content-Disposition: form-data; name="field2"\r
-\r
-\r
-5\r
-dummy\r
-97\r
-\r
-------------------------------\r
-Content-Disposition: form-data; name="field3"; filename="file%TESTNUMBER.txt"\r
-Content-Type: text/plain\r
-\r
-\r
-4f\r
+POST /%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+Accept: */*%CR
+Transfer-Encoding: chunked%CR
+Content-Type: multipart/form-data; boundary=----------------------------%CR
+Expect: 100-continue%CR
+%CR
+cd%CR
+------------------------------%CR
+Content-Disposition: form-data; name="field1"%CR
+%CR
+dummy%CR
+------------------------------%CR
+Content-Disposition: form-data; name="field2"%CR
+%CR
+%CR
+5%CR
+dummy%CR
+97%CR
+%CR
+------------------------------%CR
+Content-Disposition: form-data; name="field3"; filename="file%TESTNUMBER.txt"%CR
+Content-Type: text/plain%CR
+%CR
+%CR
+4f%CR
This is data from a file
-\r
---------------------------------\r
-\r
-0\r
-\r
+%CR
+--------------------------------%CR
+%CR
+0%CR
+%CR
</protocol>
</verify>
</testcase>
^(Content-Type: multipart/form-data;|------------).*
</strip>
<protocol>
-POST /we/want/%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-Accept: */*\r
-Content-Length: 432\r
-Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763\r
-\r
-------------------------------9ef8d6205763\r
-Content-Disposition: form-data; name="name"\r
-\r
-daniel\r
-------------------------------9ef8d6205763\r
-Content-Disposition: form-data; name="tool"\r
-\r
-curl\r
-------------------------------9ef8d6205763\r
-Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER.txt"\r
-Content-Type: text/plain\r
-\r
+POST /we/want/%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+Accept: */*%CR
+Content-Length: 432%CR
+Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763%CR
+%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: form-data; name="name"%CR
+%CR
+daniel%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: form-data; name="tool"%CR
+%CR
+curl%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: form-data; name="file"; filename="test%TESTNUMBER.txt"%CR
+Content-Type: text/plain%CR
+%CR
foo-
This is a moo-
bar
-\r
-------------------------------9ef8d6205763--\r
+%CR
+------------------------------9ef8d6205763--%CR
</protocol>
</verify>
</testcase>
</connect>
<datacheck>
-HTTP/1.1 200 Mighty fine indeed\r
-\r
+HTTP/1.1 200 Mighty fine indeed%CR
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
<verify>
<stdout>
-HTTP/1.1 200 OK\r
-Server: fake\r
-\r
+HTTP/1.1 200 OK%CR
+Server: fake%CR
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
<verify>
<stdout>
-HTTP/1.1 200 OK\r
-Server: fake\r
-\r
+HTTP/1.1 200 OK%CR
+Server: fake%CR
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
<verify>
<stdout>
-HTTP/1.1 200 OK\r
-Server: fake\r
-\r
+HTTP/1.1 200 OK%CR
+Server: fake%CR
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
<verify>
<stdout>
-HTTP/1.1 200 OK\r
-Server: fake\r
-\r
+HTTP/1.1 200 OK%CR
+Server: fake%CR
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
</connect>
<datacheck>
-HTTP/1.1 200 Mighty fine indeed\r
-\r
+HTTP/1.1 200 Mighty fine indeed%CR
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
</connect>
<datacheck>
-HTTP/1.1 200 Mighty fine indeed\r
-\r
+HTTP/1.1 200 Mighty fine indeed%CR
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
^(Content-Type: multipart/form-data;|------------).*
</strip>
<protocol>
-POST /we/want/%TESTNUMBER HTTP/1.1\r
-Host: %HOSTIP:%HTTPPORT\r
-User-Agent: curl/%VERSION\r
-Accept: */*\r
-Content-Length: 431\r
-Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763\r
-\r
-------------------------------9ef8d6205763\r
-Content-Disposition: form-data; name="name"\r
-\r
-daniel\r
-------------------------------9ef8d6205763\r
-Content-Disposition: form-data; name="tool"\r
-\r
-curl\r
-------------------------------9ef8d6205763\r
-Content-Disposition: form-data; name="file"; filename="test9.txt"\r
-Content-Type: text/plain\r
-\r
+POST /we/want/%TESTNUMBER HTTP/1.1%CR
+Host: %HOSTIP:%HTTPPORT%CR
+User-Agent: curl/%VERSION%CR
+Accept: */*%CR
+Content-Length: 431%CR
+Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763%CR
+%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: form-data; name="name"%CR
+%CR
+daniel%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: form-data; name="tool"%CR
+%CR
+curl%CR
+------------------------------9ef8d6205763%CR
+Content-Disposition: form-data; name="file"; filename="test9.txt"%CR
+Content-Type: text/plain%CR
+%CR
foo-
This is a moo-
bar
-\r
-------------------------------9ef8d6205763--\r
+%CR
+------------------------------9ef8d6205763--%CR
</protocol>
</verify>
</testcase>
SMTP
</name>
<file name="%LOGDIR/mail%TESTNUMBER">
-From: different\r
-To: another\r
-\r
-body\r
+From: different%CR
+To: another%CR
+%CR
+body%CR
%repeat[6553 x 0123456789]%
</file>
QUIT
</protocol>
<upload>
-From: different\r
-To: another\r
-\r
-body\r
+From: different%CR
+To: another%CR
+%CR
+body%CR
%repeat[6553 x 0123456789]%
-\r
-.\r
+%CR
+.%CR
</upload>
</verify>
</testcase>
</connect>
<datacheck>
-HTTP/1.1 200 Mighty fine indeed\r
-\r
+HTTP/1.1 200 Mighty fine indeed%CR
+%CR
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
our @EXPORT = qw(
compareparts
fulltest
+ checktest
getpart
getpartattr
loadarray
return @xml;
}
+sub checktest {
+ my $anyerr = 0;
+
+ for my $i (0 .. $#xml) {
+ if(index($xml[$i], "\r") >= 0) {
+ print STDERR "*** getpart.pm: $xmlfile:$i: 0x0d carriage return found. Use %CR macro instead.\n";
+ $anyerr = 1;
+ }
+ }
+ return $anyerr;
+}
+
# write the test to the given file
sub savetest {
my ($file)=@_;
%keywords
@protocols
$dev_null
+ $checktests
);
}
use pathhelp qw(
our $proxy_address; # external HTTP proxy address
our $listonly; # only list the tests
our $buildinfo; # dump buildinfo.txt
+our $checktests; # 1 to run a check on test data
our $run_duphandle; # run curl with --test-duphandle to verify handle duplication
our $run_event_based; # run curl with --test-event to test the event API
our $automakestyle; # use automake-like test status output format
}
}
}
+
+ if($checktests) {
+ loadtest("${TESTDIR}/test${testnum}"); # load the raw original data
+ if(checktest()) {
+ logmsg " $testnum: postcheck FAILED: issue(s) found in test data\n";
+ return -1;
+ }
+ }
+
return 0;
}
}
}
+ if($why && $checktests && checktest()) {
+ logmsg "Warning: issue(s) found in test data: ${TESTDIR}/test${testnum}\n";
+ }
+
return ($why, $errorreturncode);
}
# execute in scrambled order
$scrambleorder=1;
}
+ elsif($ARGV[0] eq "-w") {
+ # verify test data
+ $checktests=1;
+ }
elsif($ARGV[0] =~ /^-t(.*)/) {
# torture
$torture=1;
-u error instead of warning on server unexpectedly alive
-v verbose output
-vc path use this curl only to verify the existing servers
+ -w check test data
[num] like "5 6 9" or " 5 to 22 " to run those tests only
[!num] like "!5 !6 !9" to disable those tests
[~num] like "~5 ~6 ~9" to ignore the result of those tests
$$thing =~ s/%SP/ /g; # space
$$thing =~ s/%TAB/\t/g; # horizontal tab
+ $$thing =~ s/%CR/\r/g; # carriage return aka \r aka 0x0d
# include a file
$$thing =~ s/%include ([^%]*)%[\n\r]+/includefile($1)/ge;