summaryrefslogtreecommitdiff
path: root/test/xmlrpc/webrick_testing.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/xmlrpc/webrick_testing.rb')
-rw-r--r--test/xmlrpc/webrick_testing.rb22
1 files changed, 14 insertions, 8 deletions
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