79 lines
1.6 KiB
Plaintext
79 lines
1.6 KiB
Plaintext
<testcase>
|
|
<info>
|
|
<keywords>
|
|
HTTP
|
|
POST
|
|
POST callback
|
|
slow callback
|
|
early response
|
|
</keywords>
|
|
</info>
|
|
#
|
|
# This test checks to make sure curl can call recv() without failing after a
|
|
# send() fails on the same socket (#657). Most OSes should support this
|
|
# natively. On Windows there were reported problems and a workaround via
|
|
# define USE_RECV_BEFORE_SEND_WORKAROUND was added.
|
|
# This proved problematic in other cases and was removed again.
|
|
#
|
|
# Server-side
|
|
<reply>
|
|
# Force server reply right after request headers, not waiting for request body
|
|
<servercmd>
|
|
skip: 45
|
|
</servercmd>
|
|
<data>
|
|
HTTP/1.1 500 Internal Server Error
|
|
Date: Thu, 17 Mar 2016 14:41:00 GMT
|
|
Server: test-server/fake
|
|
Content-Type: text/plain; charset=US-ASCII
|
|
X-Special: swsclose
|
|
Content-Length: 55
|
|
Connection: close
|
|
|
|
This is a virtual description of server virtual error.
|
|
</data>
|
|
</reply>
|
|
|
|
# Client-side
|
|
<client>
|
|
<server>
|
|
http
|
|
</server>
|
|
# tool is what to use instead of 'curl'
|
|
<tool>
|
|
lib%TESTNUMBER
|
|
</tool>
|
|
# precheck is a command line to run before the test, to see if we can execute
|
|
# the test or not
|
|
<precheck>
|
|
./libtest/lib%TESTNUMBER check
|
|
</precheck>
|
|
|
|
<name>
|
|
HTTP POST, server responds before completed send
|
|
</name>
|
|
<command>
|
|
http://%HOSTIP:%HTTPPORT/%TESTNUMBER
|
|
</command>
|
|
</client>
|
|
|
|
#
|
|
# Verify data after the test has been "shot"
|
|
<verify>
|
|
<strippart>
|
|
s/^(this is what we post to the silly web server)(\r)?\n//
|
|
</strippart>
|
|
<protocol>
|
|
POST /%TESTNUMBER HTTP/1.1
|
|
Host: %HOSTIP:%HTTPPORT
|
|
Accept: */*
|
|
Content-Length: 45
|
|
Content-Type: application/x-www-form-urlencoded
|
|
|
|
</protocol>
|
|
<errorcode>
|
|
0
|
|
</errorcode>
|
|
</verify>
|
|
</testcase>
|