summaryrefslogtreecommitdiff
path: root/tool
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2020-02-06 20:53:11 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2020-02-06 20:53:11 +0900
commit5fac54a594b475e7b7a07e925c0353e18c685f2b (patch)
treed1866bff0caf674b74b03879336084ea8758c426 /tool
parentf1c230f18ba651ce7bd8e8c621ba4282c5b445db (diff)
Fixed the output from separated test in parallel test
Redirect the output of separated child process to `MiniTest::Unit.output`.
Diffstat (limited to 'tool')
-rw-r--r--tool/lib/test/unit/core_assertions.rb5
1 files changed, 4 insertions, 1 deletions
diff --git a/tool/lib/test/unit/core_assertions.rb b/tool/lib/test/unit/core_assertions.rb
index edaf83938f..836d712049 100644
--- a/tool/lib/test/unit/core_assertions.rb
+++ b/tool/lib/test/unit/core_assertions.rb
@@ -110,9 +110,12 @@ module Test
file ||= loc.path
line ||= loc.lineno
end
+ capture_stdout = true
if /mswin|mingw/ =~ RUBY_PLATFORM
res_out = "STDOUT"
else
+ capture_stdout = false
+ opt[:out] = MiniTest::Unit.output
res_p, res_c = IO.pipe
opt[res_c.fileno] = res_c.fileno
res_out = "IO.new(#{res_c.fileno}, 'w')"
@@ -130,7 +133,7 @@ module Test
eom
args = args.dup
args.insert((Hash === args.first ? 1 : 0), "-w", "--disable=gems", *$:.map {|l| "-I#{l}"})
- stdout, stderr, status = EnvUtil.invoke_ruby(args, src, true, true, **opt)
+ stdout, stderr, status = EnvUtil.invoke_ruby(args, src, capture_stdout, true, **opt)
if res_c
res_c.close
res = res_p.read