summaryrefslogtreecommitdiff
path: root/test/webrick/test_utils.rb
diff options
context:
space:
mode:
authorHiroshi SHIBATA <hsbt@ruby-lang.org>2020-11-02 13:44:28 +0900
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2020-12-10 18:06:25 +0900
commit5dc786bf86bb6e0da2639f88659598ec8b9db30d (patch)
tree87cc4d68088fc7c2616c7c1bef44c36ca10fa01f /test/webrick/test_utils.rb
parent46d3ea2c2569e2e5a9ee3e7e206f07f0f8b693f5 (diff)
Move webrick library into internal test toolchain
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3729
Diffstat (limited to 'test/webrick/test_utils.rb')
-rw-r--r--test/webrick/test_utils.rb110
1 files changed, 0 insertions, 110 deletions
diff --git a/test/webrick/test_utils.rb b/test/webrick/test_utils.rb
deleted file mode 100644
index c2b7a36e8a..0000000000
--- a/test/webrick/test_utils.rb
+++ /dev/null
@@ -1,110 +0,0 @@
-# frozen_string_literal: false
-require "test/unit"
-require "webrick/utils"
-
-class TestWEBrickUtils < Test::Unit::TestCase
- def teardown
- WEBrick::Utils::TimeoutHandler.terminate
- super
- end
-
- def assert_expired(m)
- Thread.handle_interrupt(Timeout::Error => :never, EX => :never) do
- assert_empty(m::TimeoutHandler.instance.instance_variable_get(:@timeout_info))
- end
- end
-
- def assert_not_expired(m)
- Thread.handle_interrupt(Timeout::Error => :never, EX => :never) do
- assert_not_empty(m::TimeoutHandler.instance.instance_variable_get(:@timeout_info))
- end
- end
-
- EX = Class.new(StandardError)
-
- def test_no_timeout
- m = WEBrick::Utils
- assert_equal(:foo, m.timeout(10){ :foo })
- assert_expired(m)
- end
-
- def test_nested_timeout_outer
- m = WEBrick::Utils
- i = 0
- assert_raise(Timeout::Error){
- m.timeout(1){
- assert_raise(Timeout::Error){ m.timeout(0.1){ i += 1; sleep(1) } }
- assert_not_expired(m)
- i += 1
- sleep(2)
- }
- }
- assert_equal(2, i)
- assert_expired(m)
- end
-
- def test_timeout_default_exception
- m = WEBrick::Utils
- assert_raise(Timeout::Error){ m.timeout(0.01){ sleep } }
- assert_expired(m)
- end
-
- def test_timeout_custom_exception
- m = WEBrick::Utils
- ex = EX
- assert_raise(ex){ m.timeout(0.01, ex){ sleep } }
- assert_expired(m)
- end
-
- def test_nested_timeout_inner_custom_exception
- m = WEBrick::Utils
- ex = EX
- i = 0
- assert_raise(ex){
- m.timeout(10){
- m.timeout(0.01, ex){ i += 1; sleep }
- }
- sleep
- }
- assert_equal(1, i)
- assert_expired(m)
- end
-
- def test_nested_timeout_outer_custom_exception
- m = WEBrick::Utils
- ex = EX
- i = 0
- assert_raise(Timeout::Error){
- m.timeout(0.01){
- m.timeout(1.0, ex){ i += 1; sleep }
- }
- sleep
- }
- assert_equal(1, i)
- assert_expired(m)
- end
-
- def test_create_listeners
- 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