about summary refs log tree commit homepage
path: root/t/t0001-unix-http.sh
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2009-11-26 14:09:45 -0800
committerEric Wong <normalperson@yhbt.net>2009-11-26 14:19:04 -0800
commit5868eeecb2fbc85f3e4fabf3d16f27d259491c0d (patch)
tree21746be61158f9c177bc8e2600d7922cdedc7ce1 /t/t0001-unix-http.sh
parent278d9d5a7f3d2dc3c6563af1584b5e773e08073d (diff)
downloadrainbows-5868eeecb2fbc85f3e4fabf3d16f27d259491c0d.tar.gz
Make sure app errors get logged correctly, and we no longer
return a 500 response when a client EOFs the write end (but not
the read end) of a connection.
Diffstat (limited to 't/t0001-unix-http.sh')
-rwxr-xr-xt/t0001-unix-http.sh13
1 files changed, 12 insertions, 1 deletions
diff --git a/t/t0001-unix-http.sh b/t/t0001-unix-http.sh
index 59f996a..e9bc919 100755
--- a/t/t0001-unix-http.sh
+++ b/t/t0001-unix-http.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 . ./test-lib.sh
-t_plan 18 "simple HTTP connection keepalive/pipelining tests for $model"
+t_plan 19 "simple HTTP connection keepalive/pipelining tests for $model"
 
 t_begin "checking for config.ru for $model" && {
         tbase=simple-http_$model.ru
@@ -23,6 +23,17 @@ t_begin "single TCP request" && {
         curl -sSfv http://$listen/
 }
 
+t_begin "handles client EOF gracefully" && {
+        printf 'GET / HTTP/1.1\r\nHost: example.com\r\n\r\n' | \
+                socat - UNIX:$unix_socket > $tmp
+        dbgcat tmp
+        if grep 'HTTP.* 500' $tmp
+        then
+                die "500 error returned on client shutdown(SHUT_WR)"
+        fi
+        check_stderr
+}
+
 dbgcat r_err
 
 t_begin "pipelining partial requests" && {