| <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> |