aboutsummaryrefslogtreecommitdiff
path: root/tests/data/test1540
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2017-03-27 12:14:57 +0200
committerDaniel Stenberg <daniel@haxx.se>2017-03-28 13:27:49 +0200
commit452203341d6e97b8f52f9a886046d9fdb96346a9 (patch)
treec5aa7fa5e29da5a1799123703be46f28d0491fc1 /tests/data/test1540
parent7975d10cf8a3fe9b35867509b9ef10d06614eb3a (diff)
pause: handle mixed types of data when paused
When receiving chunked encoded data with trailers, and the write callback returns PAUSE, there might be both body and header to store to resend on unpause. Previously libcurl returned error for that case. Added test case 1540 to verify. Reported-by: Stephen Toub Fixes #1354 Closes #1357
Diffstat (limited to 'tests/data/test1540')
-rw-r--r--tests/data/test154064
1 files changed, 64 insertions, 0 deletions
diff --git a/tests/data/test1540 b/tests/data/test1540
new file mode 100644
index 000000000..3277f550f
--- /dev/null
+++ b/tests/data/test1540
@@ -0,0 +1,64 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP GET
+CURLPAUSE_RECV
+chunked encoding
+Trailer:
+</keywords>
+</info>
+
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK swsclose
+Transfer-Encoding: chunked
+Trailer: MyCoolTrailerHeader
+
+4
+data
+5
+d474
+
+0
+MyCoolTrailerHeader: amazingtrailer
+
+</data>
+<datacheck>
+HTTP/1.1 200 OK swsclose
+Transfer-Encoding: chunked
+Trailer: MyCoolTrailerHeader
+
+Got 4 bytes but pausing!
+datad474
+MyCoolTrailerHeader: amazingtrailer
+</datacheck>
+
+</reply>
+# Client-side
+<client>
+<server>
+http
+</server>
+<tool>
+lib1540
+</tool>
+ <name>
+chunked with trailers and pausing the receive
+ </name>
+ <command>
+http://%HOSTIP:%HTTPPORT/1540
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+<protocol>
+GET /1540 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+</protocol>
+</verify>
+</testcase>