aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/lib/jit_support.rb10
-rw-r--r--test/ruby/test_jit.rb4
-rw-r--r--test/ruby/test_rubyoptions.rb34
-rw-r--r--test/ruby/test_rubyvm_mjit.rb6
4 files changed, 36 insertions, 18 deletions
diff --git a/test/lib/jit_support.rb b/test/lib/jit_support.rb
index eed82d32ca..c327aa1364 100644
--- a/test/lib/jit_support.rb
+++ b/test/lib/jit_support.rb
@@ -1,9 +1,8 @@
module JITSupport
JIT_TIMEOUT = 600 # 10min for each...
JIT_SUCCESS_PREFIX = 'JIT success \(\d+\.\dms\)'
- SUPPORTED_COMPILERS = [
- 'gcc',
- 'clang',
+ UNSUPPORTED_COMPILERS = [
+ 'icc',
]
module_function
@@ -35,6 +34,11 @@ module JITSupport
)
end
+ def supported?
+ return @supported if defined?(@supported)
+ @supported = !UNSUPPORTED_COMPILERS.include?(RbConfig::CONFIG['CC'])
+ end
+
def remove_mjit_logs(stderr)
if RubyVM::MJIT.enabled?
stderr.gsub(/^MJIT warning: Skipped to compile unsupported instruction: \w+\n/m, '')
diff --git a/test/ruby/test_jit.rb b/test/ruby/test_jit.rb
index cabae57ea9..3b18373212 100644
--- a/test/ruby/test_jit.rb
+++ b/test/ruby/test_jit.rb
@@ -32,6 +32,10 @@ class TestJIT < Test::Unit::TestCase
end
def setup
+ unless JITSupport.supported?
+ skip 'JIT seems not supported on this platform'
+ end
+
# ruby -w -Itest/lib test/ruby/test_jit.rb
if $VERBOSE && !defined?(@@at_exit_hooked)
at_exit do
diff --git a/test/ruby/test_rubyoptions.rb b/test/ruby/test_rubyoptions.rb
index 633d8d0ba7..1417541282 100644
--- a/test/ruby/test_rubyoptions.rb
+++ b/test/ruby/test_rubyoptions.rb
@@ -138,9 +138,11 @@ class TestRubyOptions < Test::Unit::TestCase
end
def test_enable
- assert_in_out_err(%w(--enable all -e) + [""], "", [], [])
- assert_in_out_err(%w(--enable-all -e) + [""], "", [], [])
- assert_in_out_err(%w(--enable=all -e) + [""], "", [], [])
+ if JITSupport.supported?
+ assert_in_out_err(%w(--enable all -e) + [""], "", [], [])
+ assert_in_out_err(%w(--enable-all -e) + [""], "", [], [])
+ assert_in_out_err(%w(--enable=all -e) + [""], "", [], [])
+ end
assert_in_out_err(%w(--enable foobarbazqux -e) + [""], "", [],
/unknown argument for --enable: `foobarbazqux'/)
assert_in_out_err(%w(--enable), "", [], /missing argument for --enable/)
@@ -198,19 +200,21 @@ class TestRubyOptions < Test::Unit::TestCase
end
end
- [
- %w(--version --jit),
- %w(--version --enable=jit),
- %w(--version --enable-jit),
- ].each do |args|
- assert_in_out_err(args) do |r, e|
- assert_match(VERSION_PATTERN_WITH_JIT, r[0])
- if RubyVM::MJIT.enabled?
- assert_equal(RUBY_DESCRIPTION, r[0])
- else
- assert_equal(EnvUtil.invoke_ruby(['--jit', '-e', 'print RUBY_DESCRIPTION'], '', true).first, r[0])
+ if JITSupport.supported?
+ [
+ %w(--version --jit),
+ %w(--version --enable=jit),
+ %w(--version --enable-jit),
+ ].each do |args|
+ assert_in_out_err(args) do |r, e|
+ assert_match(VERSION_PATTERN_WITH_JIT, r[0])
+ if RubyVM::MJIT.enabled?
+ assert_equal(RUBY_DESCRIPTION, r[0])
+ else
+ assert_equal(EnvUtil.invoke_ruby(['--jit', '-e', 'print RUBY_DESCRIPTION'], '', true).first, r[0])
+ end
+ assert_equal([], e)
end
- assert_equal([], e)
end
end
end
diff --git a/test/ruby/test_rubyvm_mjit.rb b/test/ruby/test_rubyvm_mjit.rb
index f4612ed902..ce4940ba2d 100644
--- a/test/ruby/test_rubyvm_mjit.rb
+++ b/test/ruby/test_rubyvm_mjit.rb
@@ -5,6 +5,12 @@ require_relative '../lib/jit_support'
class TestRubyVMMJIT < Test::Unit::TestCase
include JITSupport
+ def setup
+ unless JITSupport.supported?
+ skip 'JIT seems not supported on this platform'
+ end
+ end
+
def test_pause
out, err = eval_with_jit(<<~'EOS', verbose: 1, min_calls: 1, wait: false)
i = 0