diff options
author | Eric Wong <normalperson@yhbt.net> | 2011-04-29 15:48:35 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2011-04-29 16:01:14 -0700 |
commit | faeb3223636c39ea8df4017dc9a9d39ac649b26d (patch) | |
tree | fce6b3ee71fc84e41ed3227ff2136b167b2d59b6 /t/t9001-oob_gc.sh | |
parent | ce4995a4daf1e4da7034dc87fd218a283c405410 (diff) | |
download | unicorn-faeb3223636c39ea8df4017dc9a9d39ac649b26d.tar.gz |
This was broken since v3.3.1[1] since nginx relies on a closed socket (and not Content-Length/Transfer-Encoding) to detect a response completion. We have to close the client socket before invoking GC to ensure the client sees the response in a timely manner. [1] - commit b72a86f66c722d56a6d77ed1d2779ace6ad103ed
Diffstat (limited to 't/t9001-oob_gc.sh')
-rwxr-xr-x | t/t9001-oob_gc.sh | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/t/t9001-oob_gc.sh b/t/t9001-oob_gc.sh new file mode 100755 index 0000000..dcd8100 --- /dev/null +++ b/t/t9001-oob_gc.sh @@ -0,0 +1,47 @@ +#!/bin/sh +. ./test-lib.sh +t_plan 9 "OobGC test" + +t_begin "setup and start" && { + unicorn_setup + unicorn -D -c $unicorn_config oob_gc.ru + unicorn_wait_start +} + +t_begin "test default interval (4 requests)" && { + test xfalse = x$(curl -vsSf http://$listen/ 2>> $tmp) + test xfalse = x$(curl -vsSf http://$listen/ 2>> $tmp) + test xfalse = x$(curl -vsSf http://$listen/ 2>> $tmp) + test xfalse = x$(curl -vsSf http://$listen/ 2>> $tmp) +} + +t_begin "GC starting-request returns immediately" && { + test xfalse = x$(curl -vsSf http://$listen/ 2>> $tmp) +} + +t_begin "GC is started after 5 requests" && { + test xtrue = x$(curl -vsSf http://$listen/ 2>> $tmp) +} + +t_begin "reset GC" && { + test xfalse = x$(curl -vsSf -X POST http://$listen/gc_reset 2>> $tmp) +} + +t_begin "test default interval again (3 requests)" && { + test xfalse = x$(curl -vsSf http://$listen/ 2>> $tmp) + test xfalse = x$(curl -vsSf http://$listen/ 2>> $tmp) + test xfalse = x$(curl -vsSf http://$listen/ 2>> $tmp) +} + +t_begin "GC is started after 5 requests" && { + test xtrue = x$(curl -vsSf http://$listen/ 2>> $tmp) +} + +t_begin "killing succeeds" && { + kill -QUIT $unicorn_pid +} + +t_begin "check_stderr" && check_stderr +dbgcat r_err + +t_done |