mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* test/xmlrpc: Use assert_join_threads.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48337 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
a4b5982b4c
commit
b30ff6839d
4 changed files with 33 additions and 27 deletions
|
@ -1,3 +1,7 @@
|
|||
Sun Nov 9 18:07:00 2014 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* test/xmlrpc: Use assert_join_threads.
|
||||
|
||||
Sun Nov 9 14:06:13 2014 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* test/xmlrpc: Test webrick error log is empty.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue