From: v.ondruch@... Date: 2019-07-10T17:03:06+00:00 Subject: [ruby-core:93654] [Ruby master Bug#15986] `TestJIT#test_block_handler_with_possible_frame_omitted_inlining` fails on s390x and armv7hl Issue #15986 has been updated by vo.x (Vit Ondruch). Subject changed from `TestJIT#test_block_handler_with_possible_frame_omitted_inlining` fails on s390x and aarch64 to `TestJIT#test_block_handler_with_possible_frame_omitted_inlining` fails on s390x and armv7hl File build-x86_64.log added File build-armv7hl.log added File build-s390x.log added So this is my hacked up test case: ~~~ $ git diff diff --git a/test/ruby/test_jit.rb b/test/ruby/test_jit.rb index 08494cbbbb..9ace7754d4 100644 --- a/test/ruby/test_jit.rb +++ b/test/ruby/test_jit.rb @@ -944,9 +944,15 @@ def assert_compile_once(script, result_inspect:, insns: []) end # Shorthand for normal test cases - def assert_eval_with_jit(script, stdout: nil, success_count:, min_calls: 1, insns: [], uplevel: 3) - out, err = eval_with_jit(script, verbose: 1, min_calls: min_calls) + def assert_eval_with_jit(script, stdout: nil, success_count:, min_calls: 2, insns: [], uplevel: 3) + out, err = eval_with_jit(script, verbose: 2, min_calls: min_calls, save_temps: true) actual = err.scan(/^#{JIT_SUCCESS_PREFIX}:/).size + puts "", "**********", "* rb_mjit_min_header-2.7.0.h", "---", "" + $stdout.flush + puts File.read(".ext/include/x86_64-linux/rb_mjit_min_header-2.7.0.h") + # puts File.read(".ext/include/armv7hl-linux/rb_mjit_min_header-2.7.0.h") + # puts File.read(".ext/include/s390x-linux/rb_mjit_min_header-2.7.0.h") + Dir.glob('/tmp/*.c').each {|f| puts '**********', "* #{f}", "", File.read(f), "---"; $stdout.flush} # 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 ~~~ And I run just the single test: ~~~ make test-all TESTS="test/ruby/test_jit.rb -n /test_block_handler_with_possible_frame_omitted_inlining/" ~~~ See the attached logs from s390x, armv7hl and x86_64 (apologies, some of the lines might be slightly intermingled but the build system, but I hope you can handle that). BTW I was wrong saying that it fails on AArch64, because it actually fails on armv7hl ---------------------------------------- Bug #15986: `TestJIT#test_block_handler_with_possible_frame_omitted_inlining` fails on s390x and armv7hl https://bugs.ruby-lang.org/issues/15986#change-79265 * Author: vo.x (Vit Ondruch) * Status: Feedback * Priority: Normal * Assignee: k0kubun (Takashi Kokubun) * Target version: * ruby -v: ruby -v: ruby 2.7.0dev (2019-07-04T10:34:08Z master d9f8b88b47) [s390x-linux] * Backport: 2.4: UNKNOWN, 2.5: UNKNOWN, 2.6: UNKNOWN ---------------------------------------- I am trying to build the Ruby 2.7 snapshot for Fedora Rawhide [1], but I observe the following test failure on s390x and aarch64 platforms: ~~~ 1) Failure: TestJIT#test_block_handler_with_possible_frame_omitted_inlining [/builddir/build/BUILD/ruby-2.7.0-d9f8b88b47/test/ruby/test_jit.rb:846]: Expected 2 times of JIT success, but succeeded 1 times. script: """ def multiply(a, b) a *= b end 3.times do p multiply(7.0, 10.0) end """ stderr: """ JIT success (65.9ms): block in
@-e:6 -> /tmp/_ruby_mjit_p54157u0.c gcc: fatal error: output filename may not be empty compilation terminated. Successful MJIT finish """ .. <2> expected but was <1>. Finished tests in 440.892116s, 47.2746 tests/s, 6150.4071 assertions/s. ~~~ [1]: https://koji.fedoraproject.org/koji/taskinfo?taskID=36030301 ---Files-------------------------------- build-s390x.log (1.29 MB) build-armv7hl.log (1.26 MB) build-x86_64.log (1.28 MB) -- https://bugs.ruby-lang.org/ Unsubscribe: