diff options
author | Eric Wong <normalperson@yhbt.net> | 2010-07-19 10:10:08 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2010-07-19 17:04:39 -0700 |
commit | 9c8372c3a4972cacf0eb15ad85d34cb33293672e (patch) | |
tree | 1998fa98415c7331c56c06de69d06069fd55154b /t/t0021-sendfile-wrap-to_path.sh | |
parent | fa4eb71b8208f7fc4148a7f8dd916c2e0cd1cc8a (diff) | |
download | rainbows-9c8372c3a4972cacf0eb15ad85d34cb33293672e.tar.gz |
We need to remember to close response bodies even if a client aborts the connection, since body.close can trigger interesting things like logging and such...
Diffstat (limited to 't/t0021-sendfile-wrap-to_path.sh')
-rwxr-xr-x[-rw-r--r--] | t/t0021-sendfile-wrap-to_path.sh | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/t/t0021-sendfile-wrap-to_path.sh b/t/t0021-sendfile-wrap-to_path.sh index 4ae5929..6baa890 100644..100755 --- a/t/t0021-sendfile-wrap-to_path.sh +++ b/t/t0021-sendfile-wrap-to_path.sh @@ -9,10 +9,10 @@ ruby) ;; ;; esac -t_plan 7 "sendfile wrap body response for $model" +t_plan 10 "sendfile wrap body response for $model" t_begin "setup and startup" && { - rtmpfiles out err + rtmpfiles out err http_fifo sub_ok rainbows_setup $model echo 'require "sendfile"' >> $unicorn_config echo 'def (::IO).copy_stream(*x); abort "NO"; end' >> $unicorn_config @@ -42,6 +42,24 @@ t_begin "body.close called" && { grep CLOSING $out || die "body.close not logged" } +t_begin "start FIFO reader for abortive request" && { + cat $fifo > $out & +} + +t_begin "send abortive request" && { + ( + printf 'GET /random_blob\r\n' + dd bs=4096 count=1 < $http_fifo >/dev/null + echo ok > $ok + ) | socat - TCP:$listen > $http_fifo || : + test xok = x$(cat $ok) +} + +t_begin "body.close called for aborted request" && { + wait # for cat $fifo + grep CLOSING $out || die "body.close not logged" +} + t_begin "shutdown server" && { kill -QUIT $rainbows_pid } |