summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2023-03-10 10:07:52 -0800
committerGitHub <noreply@github.com>2023-03-10 10:07:52 -0800
commitac5f983f7d2695696693e88aa9c00b5cf2b46c37 (patch)
tree4f6f60f31e08be5ef6c2a2cb16e401d416a124da
parent365fed6369cf490f44878322fcaeddf9dfcb02f5 (diff)
RJIT: Break up and enable test_version (#7495)
Notes
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
-rw-r--r--test/lib/jit_support.rb6
-rw-r--r--test/ruby/test_rubyoptions.rb54
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