summaryrefslogtreecommitdiff
path: root/test/ruby/test_jit.rb
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2020-03-20 02:45:26 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2020-03-20 02:45:26 +0000
commit9ed9246f5a0945db89fb48d4dd88e9e80f8d3e2c (patch)
tree199a068a0add2250700bcfe00e7d368db9f14dc5 /test/ruby/test_jit.rb
parent4ab2353d50f012d3e6c6272f5019684e6e843ad3 (diff)
merge revision(s) 67322,67323:
Insert --jit-verbose=2 logs for mswin debugging Explain why cl.exe needs --jit-verbose=2 [ci skip] I forgot to explain it in the previous commit git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_6@67847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby/test_jit.rb')
-rw-r--r--test/ruby/test_jit.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/test/ruby/test_jit.rb b/test/ruby/test_jit.rb
index b2467fe074..b10e5ea00f 100644
--- a/test/ruby/test_jit.rb
+++ b/test/ruby/test_jit.rb
@@ -940,6 +940,11 @@ class TestJIT < Test::Unit::TestCase
def assert_eval_with_jit(script, stdout: nil, success_count:, min_calls: 1, insns: [], uplevel: 1)
out, err = eval_with_jit(script, verbose: 1, min_calls: min_calls)
actual = err.scan(/^#{JIT_SUCCESS_PREFIX}:/).size
+ # Add --jit-verbose=2 logs for cl.exe because compiler's error message is suppressed
+ # for cl.exe with --jit-verbose=1. See `start_process` in mjit_worker.c.
+ if RUBY_PLATFORM.match?(/mswin/) && success_count != actual
+ _, err2 = eval_with_jit(script, verbose: 2, min_calls: min_calls)
+ end
# Make sure that the script has insns expected to be tested
used_insns = method_insns(script)
@@ -954,7 +959,7 @@ class TestJIT < Test::Unit::TestCase
assert_equal(
success_count, actual,
"Expected #{success_count} times of JIT success, but succeeded #{actual} times.\n\n"\
- "script:\n#{code_block(script)}\nstderr:\n#{code_block(err)}",
+ "script:\n#{code_block(script)}\nstderr:\n#{code_block(err)}#{("\nstderr(verbose=2 retry):\n#{code_block(err2)}" if err2)}",
)
if stdout
assert_equal(stdout, out, "Expected stdout #{out.inspect} to match #{stdout.inspect} with script:\n#{code_block(script)}")