diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/exec/test_exec.rb | 7 | ||||
-rw-r--r-- | test/unit/test_configurator.rb | 24 |
2 files changed, 30 insertions, 1 deletions
diff --git a/test/exec/test_exec.rb b/test/exec/test_exec.rb index b30a3d6..1cee2b7 100644 --- a/test/exec/test_exec.rb +++ b/test/exec/test_exec.rb @@ -871,13 +871,14 @@ EOF wait_for_death(pid) end - def hup_test_common(preload) + def hup_test_common(preload, check_client=false) File.open("config.ru", "wb") { |fp| fp.syswrite(HI.gsub("HI", '#$$')) } pid_file = Tempfile.new('pid') ucfg = Tempfile.new('unicorn_test_config') ucfg.syswrite("listen '#@addr:#@port'\n") ucfg.syswrite("pid '#{pid_file.path}'\n") ucfg.syswrite("preload_app true\n") if preload + ucfg.syswrite("check_client_connection true\n") if check_client ucfg.syswrite("stderr_path 'test_stderr.#$$.log'\n") ucfg.syswrite("stdout_path 'test_stdout.#$$.log'\n") pid = xfork { @@ -942,6 +943,10 @@ EOF hup_test_common(false) end + def test_check_client_hup + hup_test_common(false, true) + end + def test_default_listen_hup_holds_listener default_listen_lock do res, pid_path = default_listen_setup diff --git a/test/unit/test_configurator.rb b/test/unit/test_configurator.rb index 267eea3..1298f0e 100644 --- a/test/unit/test_configurator.rb +++ b/test/unit/test_configurator.rb @@ -132,6 +132,30 @@ class TestConfigurator < Test::Unit::TestCase Unicorn::Configurator.new(:config_file => tmp.path) end + def test_check_client_connection + tmp = Tempfile.new('unicorn_config') + test_struct = TestStruct.new + tmp.syswrite("check_client_connection true\n") + + assert_nothing_raised do + Unicorn::Configurator.new(:config_file => tmp.path).commit!(test_struct) + end + + assert test_struct.check_client_connection + end + + def test_check_client_connection_with_tcp_bad + tmp = Tempfile.new('unicorn_config') + test_struct = TestStruct.new + listener = "127.0.0.1:12345" + tmp.syswrite("check_client_connection true\n") + tmp.syswrite("listen '#{listener}', :tcp_nopush => true\n") + + assert_raises(ArgumentError) do + Unicorn::Configurator.new(:config_file => tmp.path).commit!(test_struct) + end + end + def test_after_fork_proc test_struct = TestStruct.new [ proc { |a,b| }, Proc.new { |a,b| }, lambda { |a,b| } ].each do |my_proc| |