diff options
-rw-r--r-- | t/env.ru | 3 | ||||
-rw-r--r-- | t/lib-parser-error.sh | 32 | ||||
-rwxr-xr-x | t/t4003-rev-parser-error.sh | 35 |
3 files changed, 37 insertions, 33 deletions
diff --git a/t/env.ru b/t/env.ru new file mode 100644 index 0000000..c2355da --- /dev/null +++ b/t/env.ru @@ -0,0 +1,3 @@ +use Rack::ContentLength +use Rack::ContentType +run lambda { |env| [ 200, {}, [ env.inspect << "\n" ] ] } diff --git a/t/lib-parser-error.sh b/t/lib-parser-error.sh new file mode 100644 index 0000000..b8433e5 --- /dev/null +++ b/t/lib-parser-error.sh @@ -0,0 +1,32 @@ +. ./test-lib.sh +echo "parser error test for model=$model" +require_for_model + +eval $(unused_listen) +rtmpfiles unicorn_config pid r_err r_out tmp fifo ok +rm -f $fifo +mkfifo $fifo + +cat > $unicorn_config <<EOF +listen "$listen" +pid "$pid" +stderr_path "$r_err" +stdout_path "$r_out" +Rainbows! { use :$model } +EOF + +rainbows -D env.ru -c $unicorn_config +wait_for_pid $pid + +( + printf 'GET / HTTP/1/1\r\nHost: example.com\r\n\r\n' + cat $fifo > $tmp & + wait + echo ok > $ok +) | socat - TCP:$listen > $fifo + +kill $(cat $pid) + +dbgcat tmp +grep -F 'HTTP/1.1 400 Bad Request' $tmp +! grep Error $r_err diff --git a/t/t4003-rev-parser-error.sh b/t/t4003-rev-parser-error.sh index dff3e33..bcb129a 100755 --- a/t/t4003-rev-parser-error.sh +++ b/t/t4003-rev-parser-error.sh @@ -1,34 +1,3 @@ #!/bin/sh -. ./test-lib.sh -require_rev - -eval $(unused_listen) -rtmpfiles unicorn_config pid r_err r_out tmp fifo ok -rm -f $fifo -mkfifo $fifo - -cat > $unicorn_config <<EOF -listen "$listen" -pid "$pid" -stderr_path "$r_err" -stdout_path "$r_out" -Rainbows! do - use :Rev -end -EOF - -rainbows -D t4000.ru -c $unicorn_config -wait_for_pid $pid - -( - printf 'GET / HTTP/1/1\r\nHost: example.com\r\n\r\n' - cat $fifo > $tmp & - wait - echo ok > $ok -) | socat - TCP:$listen > $fifo - -kill $(cat $pid) - -dbgcat tmp -grep -F 'HTTP/1.1 400 Bad Request' $tmp -! grep Error $r_err +model=Rev +. ./lib-parser-error.sh |