summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authork0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-02-22 15:11:12 +0000
committerk0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-02-22 15:11:12 +0000
commit666cafbeffbb8d9db27b9c4041d9edcc4e745770 (patch)
treef6a4ea2a6e43c421a5240cc6c6de8212f18304a8 /test
parent073c8cfee453280ad4d57651a823fc02e8a6fb83 (diff)
test_rubyoptions.rb: don't test --jit if not supported
test/lib/jit_support.rb: carved out JITSupport test/ruby/test_jit.rb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62533 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/lib/jit_support.rb33
-rw-r--r--test/ruby/test_jit.rb39
-rw-r--r--test/ruby/test_rubyoptions.rb17
3 files changed, 46 insertions, 43 deletions
diff --git a/test/lib/jit_support.rb b/test/lib/jit_support.rb
new file mode 100644
index 0000000000..a6c22165be
--- /dev/null
+++ b/test/lib/jit_support.rb
@@ -0,0 +1,33 @@
+module JITSupport
+ JIT_TIMEOUT = 600 # 10min for each...
+ JIT_SUCCESS_PREFIX = 'JIT success \(\d+\.\dms\)'
+ SUPPORTED_COMPILERS = [
+ 'gcc',
+ 'clang',
+ ]
+
+ module_function
+ def eval_with_jit(script, verbose: 0, min_calls: 5, timeout: JIT_TIMEOUT)
+ EnvUtil.invoke_ruby(
+ ['--disable-gems', '--jit-wait', "--jit-verbose=#{verbose}", "--jit-min-calls=#{min_calls}", '-e', script],
+ '', true, true, timeout: timeout,
+ )
+ end
+
+ def supported?
+ # Experimental. If you want to ensure JIT is working with this test, please set this for now.
+ if ENV.key?('RUBY_FORCE_TEST_JIT')
+ return true
+ end
+
+ # Very pessimistic check. With this check, we can't ensure JIT is working.
+ begin
+ _, err = JITSupport.eval_with_jit('proc {}.call', verbose: 1, min_calls: 1, timeout: 10)
+ rescue Timeout::Error
+ $stderr.puts "TestJIT: #jit_supported? check timed out"
+ false
+ else
+ err.match?(JIT_SUCCESS_PREFIX)
+ end
+ end
+end
diff --git a/test/ruby/test_jit.rb b/test/ruby/test_jit.rb
index 481e1754bf..7d12b7c130 100644
--- a/test/ruby/test_jit.rb
+++ b/test/ruby/test_jit.rb
@@ -1,48 +1,15 @@
# frozen_string_literal: true
require 'test/unit'
-
-module TestJITSupport
- JIT_TIMEOUT = 600 # 10min for each...
- JIT_SUCCESS_PREFIX = 'JIT success \(\d+\.\dms\)'
- SUPPORTED_COMPILERS = [
- 'gcc',
- 'clang',
- ]
-
- module_function
- def eval_with_jit(script, verbose: 0, min_calls: 5, timeout: JIT_TIMEOUT)
- EnvUtil.invoke_ruby(
- ['--disable-gems', '--jit-wait', "--jit-verbose=#{verbose}", "--jit-min-calls=#{min_calls}", '-e', script],
- '', true, true, timeout: timeout,
- )
- end
-
- def supported?
- # Experimental. If you want to ensure JIT is working with this test, please set this for now.
- if ENV.key?('RUBY_FORCE_TEST_JIT')
- return true
- end
-
- # Very pessimistic check. With this check, we can't ensure JIT is working.
- begin
- _, err = TestJITSupport.eval_with_jit('proc {}.call', verbose: 1, min_calls: 1, timeout: 10)
- rescue Timeout::Error
- $stderr.puts "TestJIT: #jit_supported? check timed out"
- false
- else
- err.match?(JIT_SUCCESS_PREFIX)
- end
- end
-end
+require_relative '../lib/jit_support'
# Test for --jit option
class TestJIT < Test::Unit::TestCase
- include TestJITSupport
+ include JITSupport
# Ensure all supported insns can be compiled. Only basic tests are included.
# TODO: ensure --dump=insns includes the expected insn
def setup
- unless TestJITSupport.supported?
+ unless JITSupport.supported?
skip 'JIT seems not supported on this platform'
end
end
diff --git a/test/ruby/test_rubyoptions.rb b/test/ruby/test_rubyoptions.rb
index 038d0c2db2..3a7c28afd3 100644
--- a/test/ruby/test_rubyoptions.rb
+++ b/test/ruby/test_rubyoptions.rb
@@ -3,6 +3,7 @@ require 'test/unit'
require 'tmpdir'
require 'tempfile'
+require_relative '../lib/jit_support'
class TestRubyOptions < Test::Unit::TestCase
def write_file(filename, content)
@@ -171,14 +172,16 @@ class TestRubyOptions < Test::Unit::TestCase
end
assert_equal([], e)
end
- assert_in_out_err(%w(--version --jit)) 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?
+ assert_in_out_err(%w(--version --jit)) 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