From 432e6805e1b14bc374724ab9fd03559811b871fb Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 3 Aug 2017 00:53:25 +0000 Subject: spec_helper.rb: pass jobserver fds * spec/rubyspec/optional/capi/spec_helper.rb (compile_extension): pass jobserver fds explicitly, because other specs might have set close_on_exec flags on these fds. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59475 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- spec/rubyspec/optional/capi/spec_helper.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'spec/rubyspec') diff --git a/spec/rubyspec/optional/capi/spec_helper.rb b/spec/rubyspec/optional/capi/spec_helper.rb index 5dcb6aceac..90ed86d391 100644 --- a/spec/rubyspec/optional/capi/spec_helper.rb +++ b/spec/rubyspec/optional/capi/spec_helper.rb @@ -62,8 +62,15 @@ def compile_extension(name) ENV["MAKEFLAGS"] = "l#{ENV["MAKEFLAGS"]}" end + opts = {} + if /(?:\A|\s)--jobserver-(?:auth|fds)=(\d+),(\d+)/ =~ ENV["MAKEFLAGS"] + r = IO.for_fd($1.to_i(10), "rb", autoclose: false) + w = IO.for_fd($2.to_i(10), "wb", autoclose: false) + opts[r] = r + opts[w] = w + end # Do not capture stderr as we want to show compiler warnings - output = IO.popen([make, "V=1", "DESTDIR=", close_others: false], &:read) + output = IO.popen([make, "V=1", "DESTDIR=", opts], &:read) raise "#{make} failed:\n#{output}" unless $?.success? $stderr.puts output if debug -- cgit v1.2.3