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
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)
SharedHelpers.filesystem_access(File.join(base, "pkg")) {|p| FileUtils.mkdir_p(p) }
FileUtils.mv(built_gem_path, "pkg")
@ -85,7 +86,8 @@ module Bundler
def install_gem(built_gem_path = nil, local = false)
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/]
Bundler.ui.confirm "#{name} (#{version}) installed."
end

View File

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

View File

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