From 3a499099af52ddc69a3647767521c99c9e9c42e4 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 4 Aug 2008 22:00:22 +0000 Subject: - Test cases 1051, 1052 and 1055 were added by Daniel Fandrich on July 30 and proved how PUT and POST with a redirect could lead to a "hang" due to the data stream not being rewound properly when it had to in order to get sent properly (again) to the subsequent URL. This is now fixed and these test cases are no longer disabled. --- tests/data/DISABLED | 4 +--- tests/data/test1051 | 19 +++++++++++++++++-- tests/data/test1052 | 22 ++++++++++++++++++---- tests/data/test1055 | 11 +++++++++++ 4 files changed, 47 insertions(+), 9 deletions(-) (limited to 'tests/data') diff --git a/tests/data/DISABLED b/tests/data/DISABLED index 33f2c8d6e..fb3ae0ec9 100644 --- a/tests/data/DISABLED +++ b/tests/data/DISABLED @@ -3,6 +3,4 @@ # test cases are run by runtests.pl. Just add the plain test case numbers, one # per line. # Lines starting with '#' letters are treated as comments. -1051 -1052 -1055 + diff --git a/tests/data/test1051 b/tests/data/test1051 index 4aa31c1d6..080e1d1d5 100644 --- a/tests/data/test1051 +++ b/tests/data/test1051 @@ -29,12 +29,12 @@ Content-Length: 51 If this is received, the location following worked -HTTP/1.1 301 Redirect +HTTP/1.1 301 Redirect swsclose Date: Thu, 29 Jul 2008 14:49:00 GMT Server: test-server/fake Location: data/10510002.txt?coolsite=yes Content-Length: 0 -Connection: Keep-Alive +Connection: close HTTP/1.1 100 Continue @@ -76,6 +76,12 @@ the ^User-Agent:.* + +# The primary reason libcurl sends the data part twice in this test is that +# the test HTTP server is blocking until it has read the entire request, +# including the full request-body before it responds. So in this test the +# server says 301 and 100 _after_ the entire PUT body has been sent. + PUT /want/1051 HTTP/1.1 Host: %HOSTIP:%HTTPPORT @@ -83,6 +89,15 @@ Accept: */* Content-Length: 78 Expect: 100-continue +Weird + file + to + upload +for + testing +the + PUT + feature PUT /want/data/10510002.txt?coolsite=yes HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* diff --git a/tests/data/test1052 b/tests/data/test1052 index fac7e7d2f..10c16b4a7 100644 --- a/tests/data/test1052 +++ b/tests/data/test1052 @@ -27,12 +27,12 @@ Content-Length: 51 If this is received, the location following worked -HTTP/1.0 301 Redirect +HTTP/1.0 301 Redirect swsclose Date: Thu, 29 Jul 2008 14:49:00 GMT Server: test-server/fake Location: data/10520002.txt?coolsite=yes Content-Length: 0 -Connection: Keep-Alive +Connection: close HTTP/1.0 200 Followed here fine swsclose Date: Thu, 29 Jul 2008 14:49:00 GMT @@ -72,13 +72,27 @@ the ^User-Agent:.* + +# The primary reason libcurl sends the data part twice in this test is that +# the test HTTP server is blocking until it has read the entire request, +# including the full request-body before it responds. So in this test the +# server says 301 and 200 _after_ the entire PUT body has been sent. -PUT /want/1052 HTTP/1.1 +PUT /want/1052 HTTP/1.0 Host: %HOSTIP:%HTTPPORT Accept: */* Content-Length: 78 -PUT /want/data/10520002.txt?coolsite=yes HTTP/1.1 +Weird + file + to + upload +for + testing +the + PUT + feature +PUT /want/data/10520002.txt?coolsite=yes HTTP/1.0 Host: %HOSTIP:%HTTPPORT Accept: */* Content-Length: 78 diff --git a/tests/data/test1055 b/tests/data/test1055 index 7e2eae1b8..510d490f4 100644 --- a/tests/data/test1055 +++ b/tests/data/test1055 @@ -65,7 +65,18 @@ the PUT /1055 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* +Content-Length: 78 +Expect: 100-continue +Weird + file + to + upload +for + testing +the + PUT + feature USER anonymous PASS ftp@example.com PWD -- cgit v1.2.3