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