diff --git a/spec/mspec/lib/mspec/commands/mspec.rb b/spec/mspec/lib/mspec/commands/mspec.rb index bd34d5f0da..6b4354c2b0 100755 --- a/spec/mspec/lib/mspec/commands/mspec.rb +++ b/spec/mspec/lib/mspec/commands/mspec.rb @@ -109,7 +109,7 @@ class MSpecMain < MSpecScript } command = argv + ["-fy", "-o", name] $stderr.puts "$ #{command.join(' ')}" if $MSPEC_DEBUG - IO.popen([env, *command], "rb+") + IO.popen([env, *command, close_others: false], "rb+") } puts children.map { |child| child.gets }.uniq diff --git a/spec/rubyspec/optional/capi/spec_helper.rb b/spec/rubyspec/optional/capi/spec_helper.rb index 5dbe6bbcac..3d8cb296a6 100644 --- a/spec/rubyspec/optional/capi/spec_helper.rb +++ b/spec/rubyspec/optional/capi/spec_helper.rb @@ -57,10 +57,9 @@ def compile_extension(name) make = ENV['MAKE'] make ||= (RbConfig::CONFIG['host_os'].include?("mswin") ? "nmake" : "make") - ENV.delete "MAKEFLAGS" # Fix make warning when invoked with -j in MRI # Do not capture stderr as we want to show compiler warnings - output = `#{make} V=1 DESTDIR=` + output = IO.popen([make, "V=1", "DESTDIR=", close_others: false], &:read) raise "#{make} failed:\n#{output}" unless $?.success? $stderr.puts output if debug