From 742bbbb01b310440a7672fabddd016226d20bee7 Mon Sep 17 00:00:00 2001 From: akr Date: Sat, 8 Nov 2014 15:38:33 +0000 Subject: * test/webrick: Examine log and use assert_join_threads. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/webrick/test_server.rb | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) (limited to 'test/webrick/test_server.rb') diff --git a/test/webrick/test_server.rb b/test/webrick/test_server.rb index 3f849a459c..40afdb050e 100644 --- a/test/webrick/test_server.rb +++ b/test/webrick/test_server.rb @@ -25,27 +25,29 @@ class TestWEBrickServer < Test::Unit::TestCase def test_start_exception stopped = 0 - config = { - :StopCallback => Proc.new{ stopped += 1 }, - } - - assert_raises(SignalException) do - TestWEBrick.start_server(Echo, config) { |server, addr, port, log| - listener = server.listeners.first - def listener.accept - raise SignalException, 'SIGTERM' # simulate signal in main thread - end + log = StringIO.new('') + logger = WEBrick::Log.new(log, WEBrick::BasicLog::WARN) - Thread.pass while server.status != :Running + assert_raises(SignalException) do + listener = Object.new + def listener.to_io # IO.select invokes #to_io. + raise SignalException, 'SIGTERM' # simulate signal in main thread + end - TCPSocket.open(addr, port) { |sock| sock << "foo\n" } + server = WEBrick::HTTPServer.new({ + :BindAddress => "127.0.0.1", :Port => 0, + :StopCallback => Proc.new{ stopped += 1 }, + :Logger => logger, + }) + server.listeners[0].close + server.listeners[0] = listener - Thread.pass until server.status == :Stop - } + server.start end assert_equal(stopped, 1) + assert_match(/FATAL SignalException: SIGTERM/, log.string) end def test_callbacks -- cgit v1.2.3