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/