From 3555fdce0c9cf9bb6860a79fdc6843a1e96c9888 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 18 Oct 2013 18:03:51 +0000 Subject: http_response: respect setups with non-persistent connections Some users may wish to disable persistent connections for testing or whatever reason, let them. We'll also be using this feature to force SIGQUIT to expire clients. --- test/test_server.rb | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'test/test_server.rb') 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 -- cgit v1.2.3-24-ge0c7