about summary refs log tree commit homepage
path: root/t/lib-large-file-response.sh
diff options
context:
space:
mode:
Diffstat (limited to 't/lib-large-file-response.sh')
-rw-r--r--t/lib-large-file-response.sh105
1 files changed, 68 insertions, 37 deletions
diff --git a/t/lib-large-file-response.sh b/t/lib-large-file-response.sh
index 4e387e0..9bbd767 100644
--- a/t/lib-large-file-response.sh
+++ b/t/lib-large-file-response.sh
@@ -1,51 +1,82 @@
 . ./test-lib.sh
 test -r random_blob || die "random_blob required, run with 'make $0'"
+
 if ! grep -v ^VmRSS: /proc/self/status >/dev/null 2>&1
 then
-        echo >&2 "skipping, can't read RSS from /proc/self/status"
+        t_info "skipping, can't read RSS from /proc/self/status"
         exit 0
 fi
-echo "large file response slurp avoidance for model=$model"
 
-rainbows_setup
-# can't load Rack::Lint here since it'll cause Rev to slurp
-rainbows -E none -D large-file-response.ru -c $unicorn_config
-rainbows_wait_start
+t_plan 10 "large file response slurp avoidance for $model"
 
-random_blob_size=$(wc -c < random_blob)
-curl -v http://$listen/rss
-dbgcat r_err
-rss_before=$(curl -sSfv http://$listen/rss)
-echo "rss_before=$rss_before"
+t_begin "setup and startup" && {
+        rtmpfiles curl_out
+        rainbows_setup $model
+        # can't load Rack::Lint here since it'll cause Rev to slurp
+        rainbows -E none -D large-file-response.ru -c $unicorn_config
+        rainbows_wait_start
+}
+
+t_begin "read random blob size" && {
+        random_blob_size=$(wc -c < random_blob)
+}
+
+t_begin "read current RSS" && {
+        curl -v http://$listen/rss
+        dbgcat r_err
+        rss_before=$(curl -sSfv http://$listen/rss)
+        t_info "rss_before=$rss_before"
+}
 
-for i in a b c
-do
-        size=$( (curl -sSfv http://$listen/random_blob && echo ok >$ok) |wc -c)
+t_begin "send a series HTTP/1.1 requests sequentially" && {
+        for i in a b c
+        do
+                size=$( (curl -sSfv http://$listen/random_blob &&
+                         echo ok >$ok) |wc -c)
+                test $size -eq $random_blob_size
+                test xok = x$(cat $ok)
+        done
+}
+
+# this was a problem during development
+t_begin "HTTP/1.0 test" && {
+        size=$( (curl -0 -sSfv http://$listen/random_blob &&
+                 echo ok >$ok) |wc -c)
         test $size -eq $random_blob_size
         test xok = x$(cat $ok)
-done
-
-echo "HTTP/1.0 test" # this was a problem during development
-size=$( (curl -0 -sSfv http://$listen/random_blob && echo ok >$ok) |wc -c)
-test $size -eq $random_blob_size
-test xok = x$(cat $ok)
-
-echo "HTTP/0.9 test"
-(
-        printf 'GET /random_blob\r\n'
-        cat $fifo > $tmp &
-        wait
-        echo ok > $ok
-) | socat - TCP:$listen > $fifo
-cmp $tmp random_blob
-test xok = x$(cat $ok)
+}
+
+t_begin "HTTP/0.9 test" && {
+        (
+                printf 'GET /random_blob\r\n'
+                cat $fifo > $tmp &
+                wait
+                echo ok > $ok
+        ) | socat - TCP:$listen > $fifo
+        cmp $tmp random_blob
+        test xok = x$(cat $ok)
+}
 
 dbgcat r_err
-curl -v http://$listen/rss
-rss_after=$(curl -sSfv http://$listen/rss)
-echo "rss_after=$rss_after"
-diff=$(( $rss_after - $rss_before ))
-echo "test diff=$diff < orig=$random_blob_size"
-kill -QUIT $(cat $pid)
-test $diff -le $random_blob_size
+
+t_begin "read RSS again" && {
+        curl -v http://$listen/rss
+        rss_after=$(curl -sSfv http://$listen/rss)
+        t_info "rss_after=$rss_after"
+}
+
+t_begin "shutdown server" && {
+        kill -QUIT $rainbows_pid
+}
+
+t_begin "compare RSS before and after" && {
+        diff=$(( $rss_after - $rss_before ))
+        t_info "test diff=$diff < orig=$random_blob_size"
+        test $diff -le $random_blob_size
+}
+
 dbgcat r_err
+
+t_begin "check stderr" && check_stderr
+
+t_done