diff options
Diffstat (limited to 'test/test_server.rb')
-rw-r--r-- | test/test_server.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/test_server.rb b/test/test_server.rb index 958b4f0..289770d 100644 --- a/test/test_server.rb +++ b/test/test_server.rb @@ -380,4 +380,32 @@ class TestServer < Testcase end [ pid, host, port ] end + + def test_nonpersistent + err = @err + cfg = Yahns::Config.new + host, port = @srv.addr[3], @srv.addr[1] + cfg.instance_eval do + ru = lambda { |_| [ 200, {'Content-Length'=>'2'}, ['HI'] ] } + GTL.synchronize { + app(:rack, ru) { + listen "#{host}:#{port}" + persistent_connections false + } + } + logger(Logger.new(err.path)) + end + srv = Yahns::Server.new(cfg) + pid = fork do + ENV["YAHNS_FD"] = @srv.fileno.to_s + srv.start.join + end + c = TCPSocket.new(host, port) + c.write("GET / HTTP/1.1\r\nHost: example.com\r\n\r\n") + buf = Timeout.timeout(10) { c.read } + assert_match(/Connection: close/, buf) + c.close + ensure + quit_wait(pid) + end end |