about summary refs log tree commit homepage
path: root/test/test_server.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_server.rb')
-rw-r--r--test/test_server.rb10
1 files changed, 7 insertions, 3 deletions
diff --git a/test/test_server.rb b/test/test_server.rb
index 289770d..88dd3fb 100644
--- a/test/test_server.rb
+++ b/test/test_server.rb
@@ -50,12 +50,16 @@ class TestServer < Testcase
         buf << c.readpartial(4096)
       end
     end
+    Process.kill(:QUIT, pid)
+    "GET / HTTP/1.1\r\n\r\n".each_byte { |x| Thread.pass; c.write(x.chr) }
+    buf = Timeout.timeout(10) { c.read }
+    assert_match(/Connection: close/, buf)
+    _, status = Timeout.timeout(10) { Process.waitpid2(pid) }
+    assert status.success?, status.inspect
+    c.close
   rescue => e
     Yahns::Log.exception(Logger.new($stderr), "test", e)
     raise
-  ensure
-    c.close if c
-    quit_wait(pid)
   end
 
   def test_input_body_true; input_body(true); end