diff options
Diffstat (limited to 'tool/lib')
-rw-r--r-- | tool/lib/test/unit.rb | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/tool/lib/test/unit.rb b/tool/lib/test/unit.rb index 59409f016c..fb1a53ce05 100644 --- a/tool/lib/test/unit.rb +++ b/tool/lib/test/unit.rb @@ -286,10 +286,15 @@ module Test @jobserver = nil makeflags = ENV.delete("MAKEFLAGS") if !options[:parallel] and - /(?:\A|\s)--jobserver-(?:auth|fds)=(\d+),(\d+)/ =~ makeflags + /(?:\A|\s)--jobserver-(?:auth|fds)=(?:(\d+),(\d+)|fifo:(.*))/ =~ makeflags begin - r = IO.for_fd($1.to_i(10), "rb", autoclose: false) - w = IO.for_fd($2.to_i(10), "wb", autoclose: false) + if fifo = $3 + r = File.open(fifo, IO::RDONLY|IO::NONBLOCK|IO::BINARY, autoclose: false) + w = File.open(fifo, IO::WRONLY|IO::NONBLOCK|IO::BINARY, autoclose: false) + else + r = IO.for_fd($1.to_i(10), "rb", autoclose: false) + w = IO.for_fd($2.to_i(10), "wb", autoclose: false) + end rescue r.close if r nil |