summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/rubygems/test_gem_ext_cmake_builder.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/test/rubygems/test_gem_ext_cmake_builder.rb b/test/rubygems/test_gem_ext_cmake_builder.rb
index b3f9241a96..d056202cc0 100644
--- a/test/rubygems/test_gem_ext_cmake_builder.rb
+++ b/test/rubygems/test_gem_ext_cmake_builder.rb
@@ -14,6 +14,14 @@ class TestGemExtCmakeBuilder < Gem::TestCase
_, status = Open3.capture2e('cmake')
skip 'cmake not present' unless status.success?
rescue Errno::ENOENT
+ # Open3.capture2e with ENOENT with JIT enabled leaves a zombie process.
+ # TODO: avoid making the zombie on ENOENT with JIT
+ if defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
+ begin
+ Process.waitall
+ rescue Errno::ECHILD
+ end
+ end
skip 'cmake not present'
end