[前][次][番号順一覧][スレッド一覧]

ruby-changes:50417

From: k0kubun <ko1@a...>
Date: Fri, 23 Feb 2018 00:11:18 +0900 (JST)
Subject: [ruby-changes:50417] k0kubun:r62533 (trunk): test_rubyoptions.rb: don't test --jit if not supported

k0kubun	2018-02-23 00:11:12 +0900 (Fri, 23 Feb 2018)

  New Revision: 62533

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=62533

  Log:
    test_rubyoptions.rb: don't test --jit if not supported
    
    test/lib/jit_support.rb: carved out JITSupport
    test/ruby/test_jit.rb: ditto

  Added files:
    trunk/test/lib/jit_support.rb
  Modified files:
    trunk/test/ruby/test_jit.rb
    trunk/test/ruby/test_rubyoptions.rb
Index: test/lib/jit_support.rb
===================================================================
--- test/lib/jit_support.rb	(nonexistent)
+++ test/lib/jit_support.rb	(revision 62533)
@@ -0,0 +1,33 @@ https://github.com/ruby/ruby/blob/trunk/test/lib/jit_support.rb#L1
+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
Index: test/ruby/test_jit.rb
===================================================================
--- test/ruby/test_jit.rb	(revision 62532)
+++ test/ruby/test_jit.rb	(revision 62533)
@@ -1,48 +1,15 @@ https://github.com/ruby/ruby/blob/trunk/test/ruby/test_jit.rb#L1
 # 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
Index: test/ruby/test_rubyoptions.rb
===================================================================
--- test/ruby/test_rubyoptions.rb	(revision 62532)
+++ test/ruby/test_rubyoptions.rb	(revision 62533)
@@ -3,6 +3,7 @@ require 'test/unit' https://github.com/ruby/ruby/blob/trunk/test/ruby/test_rubyoptions.rb#L3
 
 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::Test https://github.com/ruby/ruby/blob/trunk/test/ruby/test_rubyoptions.rb#L172
       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
 

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]