From 71f94b846bc7f940c39e4fc1cb242b1e6899ed79 Mon Sep 17 00:00:00 2001 From: Donal McBreen Date: Wed, 11 Oct 2023 13:12:19 +0200 Subject: [PATCH] Ignore already terminated supervisors --- test/integration/processes_lifecycle_test.rb | 7 +++---- test/test_helper.rb | 11 ++++------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/test/integration/processes_lifecycle_test.rb b/test/integration/processes_lifecycle_test.rb index cd6d09c2..797088fd 100644 --- a/test/integration/processes_lifecycle_test.rb +++ b/test/integration/processes_lifecycle_test.rb @@ -7,14 +7,13 @@ class ProcessLifecycleTest < ActiveSupport::TestCase setup do @pid = run_supervisor_as_fork - puts "supervisor pid = #{@pid}" wait_for_registered_processes(3, timeout: 1.second) assert_registered_processes_for(:background, :default) end teardown do - terminate_supervisor if process_exists?(@pid) + terminate_supervisor(raise_on_missing: false) if process_exists?(@pid) end test "enqueue jobs in multiple queues" do @@ -182,8 +181,8 @@ class ProcessLifecycleTest < ActiveSupport::TestCase end private - def terminate_supervisor - terminate_process(@pid) + def terminate_supervisor(raise_on_missing: true) + terminate_process(@pid, raise_on_missing: raise_on_missing) end def terminate_registered_processes diff --git a/test/test_helper.rb b/test/test_helper.rb index 7f48f99a..9e3986d2 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -56,8 +56,8 @@ def assert_no_registered_processes end end - def terminate_process(pid, timeout: 10, signal: :TERM, from_parent: true) - signal_process(pid, signal) + def terminate_process(pid, timeout: 10, signal: :TERM, from_parent: true, raise_on_missing: true) + signal_process(pid, signal, raise_on_missing: raise_on_missing) wait_for_process_termination_with_timeout(pid, timeout: timeout, from_parent: from_parent) end @@ -78,15 +78,12 @@ def wait_for_process_termination_with_timeout(pid, timeout: 10, from_parent: tru raise end - def signal_process(pid, signal, wait: nil) + def signal_process(pid, signal, wait: nil, raise_on_missing: true) Thread.new do sleep(wait) if wait - puts "Sending #{signal} to #{pid}" - puts `ps aux | grep #{pid}` Process.kill(signal, pid) rescue Errno::ESRCH - puts "Exception was for #{signal} on process #{pid}" - raise + raise if raise_on_missing end end