b4085e8bb3243751c6804136024392fee38db4bb
[rainbows.git] / t / t0017-keepalive-timeout-zero.sh
blobb4085e8bb3243751c6804136024392fee38db4bb
1 #!/bin/sh
2 . ./test-lib.sh
3 skip_models StreamResponseEpoll
4 t_plan 6 "keepalive_timeout 0 tests for $model"
6 t_begin "setup and start" && {
7 rainbows_setup $model 2 0
8 grep 'keepalive_timeout 0' $unicorn_config
9 rainbows -D env.ru -c $unicorn_config
10 rainbows_wait_start
13 t_begin 'check server responds with Connection: close' && {
14 curl -sSfi http://$listen/ | grep 'Connection: close'
17 t_begin "send keepalive response that does not expect close" && {
18 req='GET / HTTP/1.1\r\nHost: example.com\r\n\r\n'
19 t0=$(date +%s)
21 cat $fifo > $tmp &
22 printf "$req"
23 wait
24 date +%s > $ok
25 ) | socat - TCP:$listen > $fifo
26 now="$(cat $ok)"
27 elapsed=$(( $now - $t0 ))
28 t_info "elapsed=$elapsed (expecting <=3)"
29 test $elapsed -le 3
32 t_begin "'Connection: close' header set" && {
33 grep 'Connection: close' $tmp
36 t_begin "killing succeeds" && {
37 kill $rainbows_pid
40 t_begin "check stderr" && {
41 check_stderr
44 t_done