aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2008-08-04 22:00:22 +0000
committerDaniel Stenberg <daniel@haxx.se>2008-08-04 22:00:22 +0000
commit3a499099af52ddc69a3647767521c99c9e9c42e4 (patch)
tree7c67c35412c825d8c7e6011d0b0fa27e64ca057c /tests
parent931fc45f05e7370fd815c34884863f2b56920b5f (diff)
- 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.
Diffstat (limited to 'tests')
-rw-r--r--tests/data/DISABLED4
-rw-r--r--tests/data/test105119
-rw-r--r--tests/data/test105222
-rw-r--r--tests/data/test105511
4 files changed, 47 insertions, 9 deletions
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
</data2>
<datacheck>
-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
<strip>
^User-Agent:.*
</strip>
+
+# 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.
+
<protocol>
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
</data2>
<datacheck>
-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
<strip>
^User-Agent:.*
</strip>
+
+# 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.
<protocol>
-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