summaryrefslogtreecommitdiff
path: root/tests/data/test587
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2011-10-16 01:07:29 +0200
committerDaniel Stenberg <daniel@haxx.se>2011-10-16 01:09:56 +0200
commit840eff44f2bea71acaa2a227998a97d01aacdc1f (patch)
tree2f0eddc19f513a85c8077b247ca090a548fccfd3 /tests/data/test587
parentff03ee2a3c958065ad5fec657963deefb9b37ac0 (diff)
downloadcurl-840eff44f2bea71acaa2a227998a97d01aacdc1f.tar.gz
formdata: ack read callback abort
When doing a multipart formpost with a read callback, and that callback returns CURL_READFUNC_ABORT, that return code must be properly propagated back and handled accordingly. Previously it would be handled as a zero byte read which would cause a hang! Added test case 587 to verify. It uses the lib554.c source code with a small ifdef. Reported by: Anton Bychkov Bug: http://curl.haxx.se/mail/lib-2011-10/0097.html
Diffstat (limited to 'tests/data/test587')
-rw-r--r--tests/data/test58751
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/data/test587 b/tests/data/test587
new file mode 100644
index 000000000..6e1239a6a
--- /dev/null
+++ b/tests/data/test587
@@ -0,0 +1,51 @@
+<testcase>
+#
+# Server-side
+<reply>
+<data>
+</data>
+</reply>
+
+# Client-side
+<client>
+<server>
+http
+</server>
+# tool is what to use instead of 'curl'
+<tool>
+lib587
+</tool>
+
+ <name>
+HTTP multi-part formpost with aborted read callback
+ </name>
+ <command>
+http://%HOSTIP:%HTTPPORT/587
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<strippart>
+s/^------------------------------[a-z0-9]*/------------------------------/
+s/boundary=----------------------------[a-z0-9]*/boundary=----------------------------/
+</strippart>
+<protocol>
+POST /587 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+Content-Length: 732
+Expect: 100-continue
+Content-Type: multipart/form-data; boundary=----------------------------
+
+------------------------------
+Content-Disposition: form-data; name="sendfile"; filename="postit2.c"
+
+</protocol>
+# CURLE_ABORTED_BY_CALLBACK (42)
+<errorcode>
+42
+</errorcode>
+</verify>
+</testcase>