diff options
author | Takashi Kokubun <takashikkbn@gmail.com> | 2023-03-10 10:07:52 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-10 10:07:52 -0800 |
commit | ac5f983f7d2695696693e88aa9c00b5cf2b46c37 (patch) | |
tree | 4f6f60f31e08be5ef6c2a2cb16e401d416a124da /test | |
parent | 365fed6369cf490f44878322fcaeddf9dfcb02f5 (diff) |
RJIT: Break up and enable test_version (#7495)
Notes
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/lib/jit_support.rb | 6 | ||||
-rw-r--r-- | test/ruby/test_rubyoptions.rb | 54 |
2 files changed, 31 insertions, 29 deletions
diff --git a/test/lib/jit_support.rb b/test/lib/jit_support.rb index d9c2522641..a8f4adfe9d 100644 --- a/test/lib/jit_support.rb +++ b/test/lib/jit_support.rb @@ -63,6 +63,12 @@ module JITSupport !UNSUPPORTED_ARCHITECTURES.include?(RUBY_PLATFORM.split('-', 2).first) end + def rjit_supported? + return @rjit_supported if defined?(@rjit_supported) + # nil in mswin + @rjit_supported = ![nil, 'no'].include?(RbConfig::CONFIG['RJIT_SUPPORT']) + end + def yjit_supported? return @yjit_supported if defined?(@yjit_supported) # nil in mswin diff --git a/test/ruby/test_rubyoptions.rb b/test/ruby/test_rubyoptions.rb index 63746c3684..923d96b1f4 100644 --- a/test/ruby/test_rubyoptions.rb +++ b/test/ruby/test_rubyoptions.rb @@ -137,14 +137,14 @@ class TestRubyOptions < Test::Unit::TestCase end private_constant :VERSION_PATTERN - VERSION_PATTERN_WITH_JIT = + VERSION_PATTERN_WITH_RJIT = case RUBY_ENGINE when 'ruby' /^ruby #{q[RUBY_VERSION]}(?:[p ]|dev|rc).*? \+RJIT \[#{q[RUBY_PLATFORM]}\]$/ else VERSION_PATTERN end - private_constant :VERSION_PATTERN_WITH_JIT + private_constant :VERSION_PATTERN_WITH_RJIT def test_verbose assert_in_out_err([{'RUBY_YJIT_ENABLE' => nil}, "-vve", ""]) do |r, e| @@ -212,7 +212,7 @@ class TestRubyOptions < Test::Unit::TestCase end def test_version - env = {'RUBY_YJIT_ENABLE' => nil} # unset in children + env = { 'RUBY_YJIT_ENABLE' => nil } # unset in children assert_in_out_err([env, '--version']) do |r, e| assert_match(VERSION_PATTERN, r[0]) if ENV['RUBY_YJIT_ENABLE'] == '1' @@ -224,20 +224,17 @@ class TestRubyOptions < Test::Unit::TestCase end assert_equal([], e) end + end - omit "This fails on some CIs for now. To be fixed in RJIT's side." - return if RbConfig::CONFIG["RJIT_SUPPORT"] == 'no' + def test_rjit_disabled_version + return unless JITSupport.rjit_supported? return if yjit_force_enabled? + env = { 'RUBY_YJIT_ENABLE' => nil } # unset in children [ %w(--version --rjit --disable=rjit), %w(--version --enable=rjit --disable=rjit), %w(--version --enable-rjit --disable-rjit), - *([ - %w(--version --jit --disable=jit), - %w(--version --enable=jit --disable=jit), - %w(--version --enable-jit --disable-jit), - ] unless JITSupport.yjit_supported?), ].each do |args| assert_in_out_err([env] + args) do |r, e| assert_match(VERSION_PATTERN, r[0]) @@ -245,27 +242,26 @@ class TestRubyOptions < Test::Unit::TestCase assert_equal([], e) end end + end - if JITSupport.supported? - [ - %w(--version --rjit), - %w(--version --enable=rjit), - %w(--version --enable-rjit), - *([ - %w(--version --jit), - %w(--version --enable=jit), - %w(--version --enable-jit), - ] unless JITSupport.yjit_supported?), - ].each do |args| - assert_in_out_err([env] + args) do |r, e| - assert_match(VERSION_PATTERN_WITH_JIT, r[0]) - if JITSupport.rjit_force_enabled? - assert_equal(RUBY_DESCRIPTION, r[0]) - else - assert_equal(EnvUtil.invoke_ruby([env, '--rjit', '-e', 'print RUBY_DESCRIPTION'], '', true).first, r[0]) - end - assert_equal([], e) + def test_rjit_version + return unless JITSupport.rjit_supported? + return if yjit_force_enabled? + + env = { 'RUBY_YJIT_ENABLE' => nil } # unset in children + [ + %w(--version --rjit), + %w(--version --enable=rjit), + %w(--version --enable-rjit), + ].each do |args| + assert_in_out_err([env] + args) do |r, e| + assert_match(VERSION_PATTERN_WITH_RJIT, r[0]) + if JITSupport.rjit_force_enabled? + assert_equal(RUBY_DESCRIPTION, r[0]) + else + assert_equal(EnvUtil.invoke_ruby([env, '--rjit', '-e', 'print RUBY_DESCRIPTION'], '', true).first, r[0]) end + assert_equal([], e) end end end |