diff options
author | Eric Wong <e@80x24.org> | 2013-10-26 01:58:34 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2013-10-26 02:00:17 +0000 |
commit | 5d5377e094745ee76cd066d2244c52b40647d1cc (patch) | |
tree | 128abda8eeb7f096f57d6596e5622cfb9aadda46 /test | |
parent | 14b21f7a162c6f4e76d00d6d08fa9a09524997ae (diff) | |
download | yahns-5d5377e094745ee76cd066d2244c52b40647d1cc.tar.gz |
This reduces the amount of code we have in our tests to improve maintainability.
Diffstat (limited to 'test')
-rw-r--r-- | test/server_helper.rb | 4 | ||||
-rw-r--r-- | test/test_client_expire.rb | 17 | ||||
-rw-r--r-- | test/test_expect_100.rb | 4 | ||||
-rw-r--r-- | test/test_output_buffering.rb | 18 | ||||
-rw-r--r-- | test/test_rack_hijack.rb | 6 | ||||
-rw-r--r-- | test/test_reopen_logs.rb | 5 | ||||
-rw-r--r-- | test/test_serve_static.rb | 10 | ||||
-rw-r--r-- | test/test_server.rb | 35 |
8 files changed, 19 insertions, 80 deletions
diff --git a/test/server_helper.rb b/test/server_helper.rb index 73d3ec8..52b08c7 100644 --- a/test/server_helper.rb +++ b/test/server_helper.rb @@ -73,9 +73,9 @@ module ServerHelper def mkserver(cfg) fork do - srv = Yahns::Server.new(cfg) ENV["YAHNS_FD"] = @srv.fileno.to_s - srv.start.join + yield if block_given? + Yahns::Server.new(cfg).start.join end end end diff --git a/test/test_client_expire.rb b/test/test_client_expire.rb index 9e2ac54..c85441a 100644 --- a/test/test_client_expire.rb +++ b/test/test_client_expire.rb @@ -22,11 +22,7 @@ class TestClientExpire < Testcase end 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 + pid = mkserver(cfg) Net::HTTP.start(host, port) { |h| res = h.get("/") assert_empty res.body @@ -51,11 +47,7 @@ class TestClientExpire < Testcase end 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 + pid = mkserver(cfg) f = get_tcp_client(host, port) s = get_tcp_client(host, port) req = "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" @@ -102,8 +94,7 @@ class TestClientExpire < Testcase end stderr_path err.path end - pid = fork do - ENV["YAHNS_FD"] = @srv.fileno.to_s + pid = mkserver(cfg) do keep = { $stderr => true, $stdout => true, $stdin => true, @srv => true } ObjectSpace.each_object(IO) do |obj| next if keep[obj] @@ -112,8 +103,6 @@ class TestClientExpire < Testcase rescue IOError # could be uninitialized end end - Yahns::Server.new(cfg).start.join - exit!($!.nil?) end f = get_tcp_client(host, port) f.write "G" diff --git a/test/test_expect_100.rb b/test/test_expect_100.rb index 4c19493..868fe3a 100644 --- a/test/test_expect_100.rb +++ b/test/test_expect_100.rb @@ -154,12 +154,10 @@ class TestExpect100 < Testcase } } end - pid = fork do - ENV["YAHNS_FD"] = @srv.fileno.to_s + pid = mkserver(cfg) do $_tw_blocked = 0 $_tw_block_on = block_on Yahns::HttpClient.__send__(:include, TrywriteBlocked) - Yahns::Server.new(cfg).start.join end c = get_tcp_client(host, port) if body.size > 0 diff --git a/test/test_output_buffering.rb b/test/test_output_buffering.rb index ae9b449..b6c7500 100644 --- a/test/test_output_buffering.rb +++ b/test/test_output_buffering.rb @@ -58,11 +58,7 @@ class TestOutputBuffering < Testcase end 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 + pid = mkserver(cfg) case check_type when :curl @@ -163,11 +159,7 @@ class TestOutputBuffering < Testcase end 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 + pid = mkserver(cfg) threads = [] # start with just a big header @@ -261,11 +253,7 @@ class TestOutputBuffering < Testcase end 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 + pid = mkserver(cfg) threads = [] threads << Thread.new do c = get_tcp_client(host, port) diff --git a/test/test_rack_hijack.rb b/test/test_rack_hijack.rb index 8376692..03c3051 100644 --- a/test/test_rack_hijack.rb +++ b/test/test_rack_hijack.rb @@ -53,11 +53,7 @@ class TestRackHijack < Testcase GTL.synchronize { app(:rack, HIJACK_APP) { listen "#{host}:#{port}" } } 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 + pid = mkserver(cfg) res = Net::HTTP.start(host, port) { |h| h.get("/hijack_req") } assert_equal "request.hijacked", res.body assert_equal 200, res.code.to_i diff --git a/test/test_reopen_logs.rb b/test/test_reopen_logs.rb index 4ca6e66..8acac6b 100644 --- a/test/test_reopen_logs.rb +++ b/test/test_reopen_logs.rb @@ -32,10 +32,7 @@ class TestReopenLogs < Testcase end worker_processes 1 if worker end - pid = fork do - ENV["YAHNS_FD"] = @srv.fileno.to_s - Yahns::Server.new(cfg).start.join - end + pid = mkserver(cfg) Net::HTTP.start(host, port) do |http| res = http.request(Net::HTTP::Get.new("/aaa")) assert_equal 200, res.code.to_i diff --git a/test/test_serve_static.rb b/test/test_serve_static.rb index 95c07bc..6cb337e 100644 --- a/test/test_serve_static.rb +++ b/test/test_serve_static.rb @@ -19,11 +19,7 @@ class TestServeStatic < Testcase end 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 + pid = mkserver(cfg) gplv3 = File.read("COPYING") Net::HTTP.start(host, port) do |http| res = http.request(Net::HTTP::Get.new("/COPYING")) @@ -47,12 +43,10 @@ class TestServeStatic < Testcase end logger(Logger.new(err.path)) end - pid = fork do - ENV["YAHNS_FD"] = @srv.fileno.to_s + pid = mkserver(cfg) do $_tw_blocked = 0 $_tw_block_on = [1] Yahns::HttpClient.__send__(:include, TrywriteBlocked) - Yahns::Server.new(cfg).start.join end gplv3 = File.read("COPYING") Net::HTTP.start(host, port) do |http| diff --git a/test/test_server.rb b/test/test_server.rb index d87f617..d10a70e 100644 --- a/test/test_server.rb +++ b/test/test_server.rb @@ -18,11 +18,7 @@ class TestServer < Testcase GTL.synchronize { app(:rack, ru) { listen "#{host}:#{port}" } } 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 + pid = mkserver(cfg) run_client(host, port) { |res| assert_equal "HI", res.body } c = get_tcp_client(host, port) @@ -80,11 +76,7 @@ class TestServer < Testcase end 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 + pid = mkserver(cfg) c = get_tcp_client(host, port) buf = "PUT / HTTP/1.0\r\nContent-Length: 2\r\n\r\nHI" c.write(buf) @@ -159,11 +151,7 @@ class TestServer < Testcase end 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 + pid = mkserver(cfg) c = get_tcp_client(host, port) buf = "PUT / HTTP/1.0\r\nTrailer:xbt\r\nTransfer-Encoding: chunked\r\n\r\n" c.write(buf) @@ -344,11 +332,7 @@ class TestServer < Testcase GTL.synchronize { app(:rack, ru.path) { listen "#{host}:#{port}" } } logger(Logger.new(File.open(err.path, "a"))) end - srv = Yahns::Server.new(cfg) - pid = fork do - ENV["YAHNS_FD"] = @srv.fileno.to_s - srv.start.join - end + pid = mkserver(cfg) [ pid, host, port ] end @@ -366,11 +350,7 @@ class TestServer < Testcase } 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 + pid = mkserver(cfg) c = get_tcp_client(host, port) c.write("GET / HTTP/1.1\r\nHost: example.com\r\n\r\n") buf = Timeout.timeout(10) { c.read } @@ -401,10 +381,7 @@ class TestServer < Testcase stderr_path err.path stdout_path out.path end - pid = fork do - ENV["YAHNS_FD"] = @srv.fileno.to_s - Yahns::Server.new(cfg).start.join - end + pid = mkserver(cfg) c = get_tcp_client(host, port) c.write("GET / HTTP/1.0\r\nHost: example.com\r\n\r\n") buf = Timeout.timeout(10) { c.read } |