diff options
Diffstat (limited to 't/t9101-thread-timeout-threshold.sh')
-rwxr-xr-x | t/t9101-thread-timeout-threshold.sh | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/t/t9101-thread-timeout-threshold.sh b/t/t9101-thread-timeout-threshold.sh new file mode 100755 index 0000000..1979dba --- /dev/null +++ b/t/t9101-thread-timeout-threshold.sh @@ -0,0 +1,62 @@ +#!/bin/sh +. ./test-lib.sh +case $model in +ThreadSpawn|ThreadPool|RevThreadSpawn|RevThreadPool) ;; +*) t_info "$0 is only compatible with Thread*"; exit 0 ;; +esac + +t_plan 6 "ThreadTimeout Rack middleware test for $model" + +t_begin "configure and start" && { + rtmpfiles curl_err curl_out + rainbows_setup $model 10 + rainbows -D t9101.ru -c $unicorn_config + rainbows_wait_start +} + +t_begin "normal request should not timeout" && { + test x"HI" = x"$(curl -sSf http://$listen/ 2>> $curl_err)" +} + +t_begin "8 sleepy requests do not time out" && { + > $curl_err + for i in 1 2 3 4 5 6 7 8 + do + curl --no-buffer -sSf http://$listen/3 \ + 2>> $curl_err >> $curl_out & + done + wait + test 8 -eq "$(wc -l < $curl_out)" + test xHI = x"$(sort < $curl_out | uniq)" +} + +t_begin "9 sleepy requests do time out" && { + > $curl_err + > $curl_out + for i in 1 2 3 4 5 6 7 8 9 + do + rtmpfiles curl_err_$i + curl -sSf --no-buffer \ + http://$listen/3 2>> ${curl_err}_${i} >> $curl_out & + done + wait + if test -s $curl_out + then + dbgcat curl_out + die "$curl_out should be empty" + fi + for i in 1 2 3 4 5 6 7 8 9 + do + grep 408 ${curl_err}_${i} + done +} + +t_begin "kill server" && { + kill $rainbows_pid +} + +t_begin "no errors in Rainbows! stderr" && { + check_stderr +} + +t_done |