From b30ff6839db848efafc4b7b61abed0e2708d2627 Mon Sep 17 00:00:00 2001 From: akr Date: Sun, 9 Nov 2014 09:07:41 +0000 Subject: * test/xmlrpc: Use assert_join_threads. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48337 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ test/xmlrpc/test_cookie.rb | 22 ++++++++++------------ test/xmlrpc/test_webrick_server.rb | 12 +++++------- test/xmlrpc/webrick_testing.rb | 22 ++++++++++++++-------- 4 files changed, 33 insertions(+), 27 deletions(-) diff --git a/ChangeLog b/ChangeLog index a305182229..d06cc619c9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sun Nov 9 18:07:00 2014 Tanaka Akira + + * test/xmlrpc: Use assert_join_threads. + Sun Nov 9 14:06:13 2014 Tanaka Akira * test/xmlrpc: Test webrick error log is empty. diff --git a/test/xmlrpc/test_cookie.rb b/test/xmlrpc/test_cookie.rb index 4f5e17a1b5..cfcfe4c3f0 100644 --- a/test/xmlrpc/test_cookie.rb +++ b/test/xmlrpc/test_cookie.rb @@ -66,22 +66,20 @@ class TestCookie < Test::Unit::TestCase s end - def setup_http_server + def setup_http_server_option option = {:Port => 0} - - addr = start_server(option) {|w| w.mount('/RPC2', create_servlet) } - - @s = XMLRPC::Client.new3(:host => addr.ip_address, :port => addr.ip_port) end def test_cookie - begin - setup_http_server - do_test - ensure - @s.http.finish - stop_server - end + option = setup_http_server_option + with_server(option, create_servlet) {|addr| + begin + @s = XMLRPC::Client.new3(:host => addr.ip_address, :port => addr.ip_port) + do_test + ensure + @s.http.finish + end + } end def do_test diff --git a/test/xmlrpc/test_webrick_server.rb b/test/xmlrpc/test_webrick_server.rb index 0877ad2e6a..36d64d5093 100644 --- a/test/xmlrpc/test_webrick_server.rb +++ b/test/xmlrpc/test_webrick_server.rb @@ -47,7 +47,7 @@ class Test_Webrick < Test::Unit::TestCase return s end - def setup_http_server(use_ssl) + def setup_http_server_option(use_ssl) option = { :BindAddress => "localhost", :Port => 0, @@ -61,14 +61,14 @@ class Test_Webrick < Test::Unit::TestCase ) end - start_server(option) {|w| w.mount('/RPC2', create_servlet) } + option end def test_client_server # NOTE: I don't enable SSL testing as this hangs [false].each do |use_ssl| - begin - addr = setup_http_server(use_ssl) + option = setup_http_server_option(use_ssl) + with_server(option, create_servlet) {|addr| @s = XMLRPC::Client.new3(:host => addr.ip_address, :port => addr.ip_port, :use_ssl => use_ssl) @s.user = 'admin' @s.password = 'admin' @@ -83,9 +83,7 @@ class Test_Webrick < Test::Unit::TestCase do_test end @s.http.finish - ensure - stop_server - end + } end end diff --git a/test/xmlrpc/webrick_testing.rb b/test/xmlrpc/webrick_testing.rb index e2a0c3f133..cfbaba07d9 100644 --- a/test/xmlrpc/webrick_testing.rb +++ b/test/xmlrpc/webrick_testing.rb @@ -37,14 +37,20 @@ module WEBrick_Testing addr end - def stop_server - return if !defined?(@__server) || !@__server - Timeout.timeout(5) { - @__server.shutdown - Thread.pass while @__started # wait until the server is down - } - @__server_thread.join - @__server = nil + def with_server(config, servlet) + addr = start_server(config) {|w| w.mount('/RPC2', create_servlet) } + client_thread = Thread.new { + begin + yield addr + ensure + @__server.shutdown + end + } + server_thread = Thread.new { + @__server_thread.join + @__server = nil + } + assert_join_threads([client_thread, server_thread]) end end end -- cgit v1.2.3