Use ENV["BUNDLE_GEM"] instead of gem command provided by system ruby.

It break the examples of bundler. Because some examples detect the
  different version of system ruby than test target version like trunk.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67086 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
hsbt 2019-02-18 13:33:25 +00:00
parent bef0c0a367
commit d04963501b
3 changed files with 16 additions and 9 deletions

View File

@ -74,7 +74,8 @@ module Bundler
def build_gem def build_gem
file_name = nil file_name = nil
sh("gem build -V '#{spec_path}'") do gem = ENV["BUNDLE_GEM"] ? ENV["BUNDLE_GEM"] : "gem"
sh("#{gem} build -V '#{spec_path}'") do
file_name = File.basename(built_gem_path) file_name = File.basename(built_gem_path)
SharedHelpers.filesystem_access(File.join(base, "pkg")) {|p| FileUtils.mkdir_p(p) } SharedHelpers.filesystem_access(File.join(base, "pkg")) {|p| FileUtils.mkdir_p(p) }
FileUtils.mv(built_gem_path, "pkg") FileUtils.mv(built_gem_path, "pkg")
@ -85,7 +86,8 @@ module Bundler
def install_gem(built_gem_path = nil, local = false) def install_gem(built_gem_path = nil, local = false)
built_gem_path ||= build_gem built_gem_path ||= build_gem
out, _ = sh_with_code("gem install '#{built_gem_path}'#{" --local" if local}") gem = ENV["BUNDLE_GEM"] ? ENV["BUNDLE_GEM"] : "gem"
out, _ = sh_with_code("#{gem} install '#{built_gem_path}'#{" --local" if local}")
raise "Couldn't install gem, run `gem install #{built_gem_path}' for more detailed output" unless out[/Successfully installed/] raise "Couldn't install gem, run `gem install #{built_gem_path}' for more detailed output" unless out[/Successfully installed/]
Bundler.ui.confirm "#{name} (#{version}) installed." Bundler.ui.confirm "#{name} (#{version}) installed."
end end

View File

@ -339,7 +339,8 @@ RSpec.describe "bundle clean" do
gem "rack" gem "rack"
G G
sys_exec! "gem list" gem = ruby_core? ? ENV["BUNDLE_GEM"] : "gem"
sys_exec! "#{gem} list"
expect(out).to include("rack (1.0.0)").and include("thin (1.0)") expect(out).to include("rack (1.0.0)").and include("thin (1.0)")
end end
@ -461,8 +462,9 @@ RSpec.describe "bundle clean" do
end end
bundle! :update, :all => bundle_update_requires_all? bundle! :update, :all => bundle_update_requires_all?
sys_exec! "gem list" gem = ruby_core? ? ENV["BUNDLE_GEM"] : "gem"
expect(out).to include("foo (1.0.1, 1.0)") sys_exec! "#{gem} list"
expect(out).to include("foo (1.0.1, 1.0)")
end end
it "cleans system gems when --force is used" do it "cleans system gems when --force is used" do
@ -485,7 +487,8 @@ RSpec.describe "bundle clean" do
bundle "clean --force" bundle "clean --force"
expect(out).to include("Removing foo (1.0)") expect(out).to include("Removing foo (1.0)")
sys_exec "gem list" gem = ruby_core? ? ENV["BUNDLE_GEM"] : "gem"
sys_exec "#{gem} list"
expect(out).not_to include("foo (1.0)") expect(out).not_to include("foo (1.0)")
expect(out).to include("rack (1.0.0)") expect(out).to include("rack (1.0.0)")
end end
@ -519,7 +522,8 @@ RSpec.describe "bundle clean" do
expect(out).to include(system_gem_path.to_s) expect(out).to include(system_gem_path.to_s)
expect(out).to include("grant write permissions") expect(out).to include("grant write permissions")
sys_exec "gem list" gem = ruby_core? ? ENV["BUNDLE_GEM"] : "gem"
sys_exec "#{gem} list"
expect(out).to include("foo (1.0)") expect(out).to include("foo (1.0)")
expect(out).to include("rack (1.0.0)") expect(out).to include("rack (1.0.0)")
end end

View File

@ -59,10 +59,11 @@ module Spec
no_reqs.map!(&:first) no_reqs.map!(&:first)
reqs.map! {|name, req| "'#{name}:#{req}'" } reqs.map! {|name, req| "'#{name}:#{req}'" }
deps = reqs.concat(no_reqs).join(" ") deps = reqs.concat(no_reqs).join(" ")
gem = Spec::Path.ruby_core? ? ENV["BUNDLE_GEM"] : "gem"
cmd = if Gem::VERSION < "2.0.0" cmd = if Gem::VERSION < "2.0.0"
"gem install #{deps} --no-rdoc --no-ri --conservative" "#{gem} install #{deps} --no-rdoc --no-ri --conservative"
else else
"gem install #{deps} --no-document --conservative" "#{gem} install #{deps} --no-document --conservative"
end end
puts cmd puts cmd
system(cmd) || raise("Installing gems #{deps} for the tests to use failed!") system(cmd) || raise("Installing gems #{deps} for the tests to use failed!")