From 228ad3d799dc04550647a2d1855d5a89c0f629cc Mon Sep 17 00:00:00 2001 From: drbrain Date: Wed, 18 Dec 2013 01:02:58 +0000 Subject: * lib/rubygems: Update to RubyGems master d8f12e2. This increases the speed of `gem install --ignore-dependencies` which helps bundler tests. * test/rubygems: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44270 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/rubygems/test_gem_dependency_installer.rb | 30 +++++++++++++++++++++++ test/rubygems/test_gem_request_set.rb | 16 +++++++++++++ test/rubygems/test_gem_resolver.rb | 33 ++++++++++++++++++++++++++ 3 files changed, 79 insertions(+) (limited to 'test') diff --git a/test/rubygems/test_gem_dependency_installer.rb b/test/rubygems/test_gem_dependency_installer.rb index 34b04d7e62..0a82fa63cb 100644 --- a/test/rubygems/test_gem_dependency_installer.rb +++ b/test/rubygems/test_gem_dependency_installer.rb @@ -1202,6 +1202,36 @@ class TestGemDependencyInstaller < Gem::TestCase assert_resolve %w[d-1 e-1], e1, @d1, @d2 end + def test_resolve_dependencies + util_setup_gems + + FileUtils.mv @a1_gem, @tempdir + FileUtils.mv @b1_gem, @tempdir + + inst = Gem::DependencyInstaller.new + request_set = inst.resolve_dependencies 'b', req('>= 0') + + requests = request_set.sorted_requests.map { |req| req.full_name } + + assert_equal %w[a-1 b-1], requests + end + + def test_resolve_dependencies_ignore_dependencies + util_setup_gems + + FileUtils.mv @a1_gem, @tempdir + FileUtils.mv @b1_gem, @tempdir + + inst = Gem::DependencyInstaller.new :ignore_dependencies => true + request_set = inst.resolve_dependencies 'b', req('>= 0') + + requests = request_set.sorted_requests.map { |req| req.full_name } + + assert request_set.ignore_dependencies + + assert_equal %w[b-1], requests + end + def util_write_a1_bin write_file File.join('gems', 'a-1', 'bin', 'a_bin') do |fp| fp.puts "#!/usr/bin/ruby" diff --git a/test/rubygems/test_gem_request_set.rb b/test/rubygems/test_gem_request_set.rb index 5a2c61a47d..82757958c8 100644 --- a/test/rubygems/test_gem_request_set.rb +++ b/test/rubygems/test_gem_request_set.rb @@ -202,6 +202,22 @@ DEPENDENCIES rs.sets.map { |set| set.class } end + def test_resolve_ignore_dependencies + a = util_spec "a", "2", "b" => ">= 2" + b = util_spec "b", "2" + + rs = Gem::RequestSet.new + rs.gem "a" + rs.ignore_dependencies = true + + res = rs.resolve StaticSet.new([a, b]) + assert_equal 1, res.size + + names = res.map { |s| s.full_name }.sort + + assert_equal %w[a-2], names + end + def test_resolve_incompatible a1 = util_spec 'a', 1 a2 = util_spec 'a', 2 diff --git a/test/rubygems/test_gem_resolver.rb b/test/rubygems/test_gem_resolver.rb index 97ac64b85e..7d3311c14c 100644 --- a/test/rubygems/test_gem_resolver.rb +++ b/test/rubygems/test_gem_resolver.rb @@ -99,6 +99,39 @@ class TestGemResolver < Gem::TestCase assert_equal 2, res.conflicts.length end + def test_requests + a1 = util_spec 'a', 1, 'b' => 2 + + r1 = Gem::Resolver::DependencyRequest.new dep('a', '= 1'), nil + + act = Gem::Resolver::ActivationRequest.new a1, r1, false + + res = Gem::Resolver.new [a1] + + reqs = Gem::Resolver::RequirementList.new + + res.requests a1, act, reqs + + assert_equal ['b (= 2)'], reqs.to_a.map { |req| req.to_s } + end + + def test_requests_ignore_dependencies + a1 = util_spec 'a', 1, 'b' => 2 + + r1 = Gem::Resolver::DependencyRequest.new dep('a', '= 1'), nil + + act = Gem::Resolver::ActivationRequest.new a1, r1, false + + res = Gem::Resolver.new [a1] + res.ignore_dependencies = true + + reqs = Gem::Resolver::RequirementList.new + + res.requests a1, act, reqs + + assert_empty reqs + end + def test_no_overlap_specificly a = util_spec "a", '1' b = util_spec "b", "1" -- cgit v1.2.3