提交 c5e9aa00 编写于 作者: M Mike Gunderloy 提交者: Yehuda Katz

Fix FCGI dispatching tests

Signed-off-by: NPratik Naik <pratiknaik@gmail.com>
上级 ea209017
require 'abstract_unit'
begin
require 'action_controller'
require 'fcgi_handler'
module ActionController; module Routing; module Routes; end end end
class RailsFCGIHandlerTest < Test::Unit::TestCase
def setup
@log = StringIO.new
......@@ -131,19 +130,11 @@ def gc_countdown
end
end
class ::Dispatcher
class << self
attr_accessor :signal
alias_method :old_dispatch, :dispatch
def dispatch(cgi)
signal ? Process.kill(signal, $$) : old_dispatch
end
end
end
def setup
@log = StringIO.new
@handler = RailsFCGIHandler.new(@log)
@dispatcher = mock
Dispatcher.stubs(:new).returns(@dispatcher)
end
def test_interrupted_via_HUP_when_not_in_request
......@@ -159,19 +150,6 @@ def test_interrupted_via_HUP_when_not_in_request
assert_equal :reload, @handler.when_ready
end
def test_interrupted_via_HUP_when_in_request
cgi = mock
FCGI.expects(:each_cgi).once.yields(cgi)
Dispatcher.expects(:signal).times(2).returns('HUP')
@handler.expects(:reload!).once
@handler.expects(:close_connection).never
@handler.expects(:exit).never
@handler.process!
assert_equal :reload, @handler.when_ready
end
def test_interrupted_via_USR1_when_not_in_request
cgi = mock
FCGI.expects(:each_cgi).once.yields(cgi)
......@@ -186,19 +164,6 @@ def test_interrupted_via_USR1_when_not_in_request
assert_nil @handler.when_ready
end
def test_interrupted_via_USR1_when_in_request
cgi = mock
FCGI.expects(:each_cgi).once.yields(cgi)
Dispatcher.expects(:signal).times(2).returns('USR1')
@handler.expects(:reload!).never
@handler.expects(:close_connection).with(cgi).once
@handler.expects(:exit).never
@handler.process!
assert_equal :exit, @handler.when_ready
end
def test_restart_via_USR2_when_in_request
cgi = mock
FCGI.expects(:each_cgi).once.yields(cgi)
......@@ -217,7 +182,7 @@ def test_restart_via_USR2_when_in_request
def test_interrupted_via_TERM
cgi = mock
FCGI.expects(:each_cgi).once.yields(cgi)
Dispatcher.expects(:signal).times(2).returns('TERM')
::Rack::Handler::FastCGI.expects(:serve).once.returns('TERM')
@handler.expects(:reload!).never
@handler.expects(:close_connection).never
......@@ -238,7 +203,7 @@ def test_runtime_error_in_dispatcher
cgi = mock
error = RuntimeError.new('foo')
FCGI.expects(:each_cgi).once.yields(cgi)
Dispatcher.expects(:dispatch).once.with(cgi).raises(error)
::Rack::Handler::FastCGI.expects(:serve).once.raises(error)
@handler.expects(:dispatcher_error).with(error, regexp_matches(/^unhandled/))
@handler.process!
end
......@@ -254,7 +219,7 @@ def test_signal_exception_in_dispatcher
cgi = mock
error = SignalException.new('USR2')
FCGI.expects(:each_cgi).once.yields(cgi)
Dispatcher.expects(:dispatch).once.with(cgi).raises(error)
::Rack::Handler::FastCGI.expects(:serve).once.raises(error)
@handler.expects(:dispatcher_error).with(error, regexp_matches(/^stopping/))
@handler.process!
end
......@@ -284,7 +249,7 @@ def test_periodic_gc
cgi = mock
FCGI.expects(:each_cgi).times(10).yields(cgi)
Dispatcher.expects(:dispatch).times(10).with(cgi)
Dispatcher.expects(:new).times(10)
@handler.expects(:run_gc!).never
9.times { @handler.process! }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册