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

ruby-changes:51297

From: k0kubun <ko1@a...>
Date: Thu, 24 May 2018 23:32:09 +0900 (JST)
Subject: [ruby-changes:51297] k0kubun:r63503 (trunk): spec/ruby: fix RUBY_DESCRIPTION check with JIT enabled

k0kubun	2018-05-24 23:32:05 +0900 (Thu, 24 May 2018)

  New Revision: 63503

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

  Log:
    spec/ruby: fix RUBY_DESCRIPTION check with JIT enabled
    
    `make test-spec` adds `-r./$(arch)-fake` to pass header options.
    But the $(arch)-fake.rb unexpectedly modifies RUBY_DESCRIPTION and it
    always drops +JIT from it since the fake.rb is built with BOOTSTRAPRUBY,
    which can be miniruby. miniruby can't find MJIT header and thus
    mjit_init_p is always FALSE.
    
    So, to pass `make test-spec` with JIT enabled, we can't use
    RUBY_DESCRIPTION.

  Modified files:
    trunk/spec/ruby/command_line/dash_v_spec.rb
    trunk/spec/ruby/command_line/rubyopt_spec.rb
Index: spec/ruby/command_line/dash_v_spec.rb
===================================================================
--- spec/ruby/command_line/dash_v_spec.rb	(revision 63502)
+++ spec/ruby/command_line/dash_v_spec.rb	(revision 63503)
@@ -6,7 +6,14 @@ describe "The -v command line option" do https://github.com/ruby/ruby/blob/trunk/spec/ruby/command_line/dash_v_spec.rb#L6
 
   describe "when used alone" do
     it "prints version and ends" do
-      ruby_exe(nil, args: '-v').include?(RUBY_DESCRIPTION).should == true
+      ruby_description =
+        if RubyVM::MJIT.enabled?
+          # fake.rb always drops +JIT from RUBY_DESCRIPTION. This resurrects that.
+          RUBY_DESCRIPTION.sub(/ \[[^\]]+\]$/, ' +JIT\0')
+        else
+          RUBY_DESCRIPTION
+        end
+      ruby_exe(nil, args: '-v').include?(ruby_description).should == true
     end
   end
 end
Index: spec/ruby/command_line/rubyopt_spec.rb
===================================================================
--- spec/ruby/command_line/rubyopt_spec.rb	(revision 63502)
+++ spec/ruby/command_line/rubyopt_spec.rb	(revision 63503)
@@ -22,14 +22,22 @@ describe "Processing RUBYOPT" do https://github.com/ruby/ruby/blob/trunk/spec/ruby/command_line/rubyopt_spec.rb#L22
     result.should =~ /value of \$DEBUG is true/
   end
 
+  ruby_description =
+    if RubyVM::MJIT.enabled?
+      # fake.rb always drops +JIT from RUBY_DESCRIPTION. This resurrects that.
+      RUBY_DESCRIPTION.sub(/ \[[^\]]+\]$/, ' +JIT\0')
+    else
+      RUBY_DESCRIPTION
+    end
+
   it "prints the version number for '-v'" do
     ENV["RUBYOPT"] = '-v'
-    ruby_exe("")[/\A.*/].should == RUBY_DESCRIPTION
+    ruby_exe("")[/\A.*/].should == ruby_description
   end
 
   it "ignores whitespace around the option" do
     ENV["RUBYOPT"] = ' -v '
-    ruby_exe("")[/\A.*/].should == RUBY_DESCRIPTION
+    ruby_exe("")[/\A.*/].should == ruby_description
   end
 
   it "sets $VERBOSE to true for '-w'" do

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

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