aboutsummaryrefslogtreecommitdiffstats
path: root/test/webrick/test_utils.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/webrick/test_utils.rb')
-rw-r--r--test/webrick/test_utils.rb24
1 files changed, 20 insertions, 4 deletions
diff --git a/test/webrick/test_utils.rb b/test/webrick/test_utils.rb
index d7ef3653f7..9f62c81b8c 100644
--- a/test/webrick/test_utils.rb
+++ b/test/webrick/test_utils.rb
@@ -59,10 +59,26 @@ class TestWEBrickUtils < Test::Unit::TestCase
end
def test_create_listeners
- listeners = WEBrick::Utils.create_listeners("127.0.0.1", "9999")
- srv = listeners.first
- assert_equal true, srv.is_a?(TCPServer)
- assert_equal ["AF_INET", 9999, "127.0.0.1", "127.0.0.1"], srv.addr
+ addr = listener_address(0)
+ port = addr.slice!(1)
+ assert_kind_of(Integer, port, "dynamically chosen port number")
+ assert_equal(["AF_INET", "127.0.0.1", "127.0.0.1"], addr)
+
+ assert_equal(["AF_INET", port, "127.0.0.1", "127.0.0.1"],
+ listener_address(port),
+ "specific port number")
+
+ assert_equal(["AF_INET", port, "127.0.0.1", "127.0.0.1"],
+ listener_address(port.to_s),
+ "specific port number string")
end
+ def listener_address(port)
+ listeners = WEBrick::Utils.create_listeners("127.0.0.1", port)
+ srv = listeners.first
+ assert_kind_of TCPServer, srv
+ srv.addr
+ ensure
+ listeners.each(&:close) if listeners
+ end
end