diff options
Diffstat (limited to 'test/webrick/utils.rb')
-rw-r--r-- | test/webrick/utils.rb | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/test/webrick/utils.rb b/test/webrick/utils.rb index 39cadcff54..82df9cde69 100644 --- a/test/webrick/utils.rb +++ b/test/webrick/utils.rb @@ -27,23 +27,30 @@ module TestWEBrick module_function def start_server(klass, config={}, &block) + log_string = "" + logger = Object.new + logger.instance_eval do + define_singleton_method(:<<) {|msg| log_string << msg } + end + log = proc { "webrick log start:\n" + log_string.gsub(/^/, " ").chomp + "\nwebrick log end" } server = klass.new({ :BindAddress => "127.0.0.1", :Port => 0, :ShutdownSocketWithoutClose =>true, :ServerType => Thread, - :Logger => WEBrick::Log.new(NullWriter), - :AccessLog => [[NullWriter, ""]] + :Logger => WEBrick::Log.new(logger), + :AccessLog => [[logger, ""]] }.update(config)) begin server.start addr = server.listeners[0].addr - block.yield([server, addr[3], addr[1]]) + block.yield([server, addr[3], addr[1], log]) ensure server.shutdown until server.status == :Stop sleep 0.1 end end + log_string end def start_httpserver(config={}, &block) |