3 t_plan
11 "rack.input pipelining test"
5 t_begin
"setup and startup" && {
8 rainbows
-D sha1.ru
-c $unicorn_config
10 body_size
=$
(printf $body |
wc -c)
11 body_sha1
=$
(printf $body | rsha1
)
12 random_blob_size
=$
(wc -c < random_blob
)
13 random_blob_sha1
=$
(rsha1
< random_blob
)
17 t_begin
"send big pipelined chunked requests" && {
20 content-md5-put
< random_blob
21 content-md5-put
< random_blob
22 content-md5-put
< random_blob
23 printf 'PUT / HTTP/1.0\r\n'
24 printf 'Content-Length: %d\r\n\r\n' $random_blob_size
28 ) | socat
- TCP4
:$listen > $fifo
29 test x
"$(cat $ok)" = xok
32 t_begin
"check responses" && {
34 test 4 -eq $
(grep $random_blob_sha1 $tmp |
wc -l)
37 t_begin
"send big pipelined identity requests" && {
40 printf 'PUT / HTTP/1.0\r\n'
41 printf 'Connection: keep-alive\r\n'
42 printf 'Content-Length: %d\r\n\r\n' $random_blob_size
44 printf 'PUT / HTTP/1.1\r\n'
45 printf 'Content-Length: %d\r\n\r\n' $random_blob_size
47 printf 'PUT / HTTP/1.0\r\n'
48 printf 'Content-Length: %d\r\n\r\n' $random_blob_size
52 ) | socat
- TCP4
:$listen > $fifo
53 test x
"$(cat $ok)" = xok
56 t_begin
"check responses" && {
58 test 3 -eq $
(grep $random_blob_sha1 $tmp |
wc -l)
61 t_begin
"send pipelined identity requests" && {
64 printf 'PUT / HTTP/1.0\r\n'
65 printf 'Connection: keep-alive\r\n'
66 printf 'Content-Length: %d\r\n\r\n%s' $body_size $body
67 printf 'PUT / HTTP/1.1\r\nHost: example.com\r\n'
68 printf 'Content-Length: %d\r\n\r\n%s' $body_size $body
69 printf 'PUT / HTTP/1.0\r\n'
70 printf 'Content-Length: %d\r\n\r\n%s' $body_size $body
77 ) | socat
- TCP4
:$listen > $fifo
78 test x
"$(cat $ok)" = xok
81 t_begin
"check responses" && {
83 test 3 -eq $
(grep $body_sha1 $tmp |
wc -l)
86 t_begin
"send pipelined chunked requests" && {
89 printf 'PUT / HTTP/1.0\r\n'
90 printf 'Connection: keep-alive\r\n'
91 printf 'Transfer-Encoding: chunked\r\n\r\n'
92 printf '%x\r\n%s\r\n0\r\n\r\n' $body_size $body
93 printf 'PUT / HTTP/1.1\r\nHost: example.com\r\n'
94 printf 'Transfer-Encoding: chunked\r\n\r\n'
95 printf '%x\r\n%s\r\n0\r\n\r\n' $body_size $body
96 printf 'PUT / HTTP/1.0\r\n'
97 printf 'Transfer-Encoding: chunked\r\n\r\n'
98 printf '%x\r\n%s\r\n0\r\n\r\n' $body_size $body
105 ) | socat
- TCP4
:$listen > $fifo
106 test x
"$(cat $ok)" = xok
109 t_begin
"check responses" && {
111 test 3 -eq $
(grep $body_sha1 $tmp |
wc -l)
114 t_begin
"kill server" && kill $rainbows_pid
116 t_begin
"no errors in stderr log" && check_stderr