stream_response_epoll: our most "special" concurrency option yet
[rainbows.git] / t / t0010-keepalive-timeout-effective.sh
blob0a6236fcb75ee54997e07e836ad71c9d238f97d9
1 #!/bin/sh
2 . ./test-lib.sh
3 skip_models StreamResponseEpoll
5 t_plan 6 "keepalive_timeout tests for $model"
7 t_begin "setup and start" && {
8 rainbows_setup
9 rainbows -D env.ru -c $unicorn_config
10 rainbows_wait_start
13 t_begin 'check server up' && {
14 curl -sSf http://$listen/
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 >=5s)"
29 test $elapsed -ge 5
32 t_begin 'keepalive not unreasonably long' && {
33 test $elapsed -lt 15
36 t_begin "killing succeeds" && {
37 kill $rainbows_pid
40 t_begin "check stderr" && {
41 check_stderr
44 t_done