summaryrefslogtreecommitdiff
path: root/test/lib
diff options
context:
space:
mode:
authork0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-05-27 05:47:43 +0000
committerk0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-05-27 05:47:43 +0000
commit6d38935605b554a3d6ce571bccbb9f41a548e3a2 (patch)
tree150e1d827663b1b4c6fa630ddee34fba15b2ad29 /test/lib
parent506512c028b0967ee04239d17a92ccb42b3241b1 (diff)
jit_support.rb: cahce JIT support check
* Before make test-all -C .ruby-svn TESTS="../test/ruby/test_jit.rb" 22.40s user 5.38s system 91% cpu 30.196 total * After make test-all -C .ruby-svn TESTS="../test/ruby/test_jit.rb" 12.91s user 3.33s system 91% cpu 17.648 total Also, this makes it easier to check if JIT is actually tested, by showing warning on stderr. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63504 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/lib')
-rw-r--r--test/lib/jit_support.rb33
1 files changed, 21 insertions, 12 deletions
diff --git a/test/lib/jit_support.rb b/test/lib/jit_support.rb
index d00625278f..adc89317dd 100644
--- a/test/lib/jit_support.rb
+++ b/test/lib/jit_support.rb
@@ -6,18 +6,7 @@ module JITSupport
'clang',
]
- module_function
- def eval_with_jit(env = nil, script, verbose: 0, min_calls: 5, save_temps: false, timeout: JIT_TIMEOUT)
- args = ['--disable-gems', '--jit-wait', "--jit-verbose=#{verbose}", "--jit-min-calls=#{min_calls}"]
- args << '--jit-save-temps' if save_temps
- args << '-e' << script
- args.unshift(env) if env
- EnvUtil.invoke_ruby(args,
- '', true, true, timeout: timeout,
- )
- end
-
- def supported?
+ def self.check_support
# 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
@@ -34,6 +23,26 @@ module JITSupport
end
end
+ module_function
+ def eval_with_jit(env = nil, script, verbose: 0, min_calls: 5, save_temps: false, timeout: JIT_TIMEOUT)
+ args = ['--disable-gems', '--jit-wait', "--jit-verbose=#{verbose}", "--jit-min-calls=#{min_calls}"]
+ args << '--jit-save-temps' if save_temps
+ args << '-e' << script
+ args.unshift(env) if env
+ EnvUtil.invoke_ruby(args,
+ '', true, true, timeout: timeout,
+ )
+ end
+
+ def supported?
+ return @supported if defined?(@supported)
+ @supported = JITSupport.check_support.tap do |supported|
+ unless supported
+ warn "JIT tests are skiped since JIT seems not working. Set RUBY_FORCE_TEST_JIT=1 to let it fail.", uplevel: 1
+ end
+ end
+ end
+
def remove_mjit_logs(stderr)
if RubyVM::MJIT.enabled?
stderr.gsub(/^MJIT warning: Skipped to compile unsupported instruction: \w+\n/m, '')