Rainbows! 3.2.0 - trying to send files to slow clients
[rainbows.git] / t / t0202-async-response-one-oh.sh
blob0d833ca6f82347073a32e83d6fddbe27801293e2
1 #!/bin/sh
2 CONFIG_RU=${CONFIG_RU-'async-response.ru'}
3 . ./test-lib.sh
5 skip_models Base WriterThreadPool WriterThreadSpawn
7 t_plan 6 "async HTTP/1.0 response for $model"
9 t_begin "setup and start" && {
10 rainbows_setup
11 rtmpfiles a b c a_err b_err c_err
12 # can't load Rack::Lint here since it'll cause Rev to slurp
13 rainbows -E none -D $CONFIG_RU -c $unicorn_config
14 rainbows_wait_start
17 t_begin "send async requests off in parallel" && {
18 t0=$(date +%s)
19 curl="curl -0 --no-buffer -vsSf http://$listen/"
20 ( $curl 2>> $a_err | utee $a) &
21 ( $curl 2>> $b_err | utee $b) &
22 ( $curl 2>> $c_err | utee $c) &
23 wait
24 t1=$(date +%s)
27 t_begin "ensure elapsed requests were processed in parallel" && {
28 elapsed=$(( $t1 - $t0 ))
29 echo "elapsed=$elapsed < 30"
30 test $elapsed -lt 30
33 t_begin "termination signal sent" && {
34 kill $rainbows_pid
37 dbgcat a
38 dbgcat b
39 dbgcat c
40 dbgcat a_err
42 t_begin "no errors from curl" && {
43 if grep -i Transfer-Encoding $a_err $b_err $c_err
44 then
45 die "Unexpected Transfer-Encoding: header"
47 for i in $a_err $b_err $c_err
49 grep 'Connection: close' $i
50 done
53 dbgcat r_err
54 t_begin "no errors in stderr" && check_stderr
56 t_done