From 269503b544247b5b3e30dbe60a0bab4f2ca00e4e Mon Sep 17 00:00:00 2001 From: naruse Date: Sat, 14 Sep 2013 08:59:02 +0000 Subject: Revert r42938 "* lib/rubygems: Update to RubyGems 2.1.3" It breaks build. http://u64.rubyci.org/~chkbuild/ruby-trunk/log/20130913T200302Z.diff.html.gz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42941 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/rubygems/test_gem_dependency_resolver.rb | 49 +++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 3 deletions(-) (limited to 'test/rubygems/test_gem_dependency_resolver.rb') diff --git a/test/rubygems/test_gem_dependency_resolver.rb b/test/rubygems/test_gem_dependency_resolver.rb index 08d8e62f2b..47eef8cc55 100644 --- a/test/rubygems/test_gem_dependency_resolver.rb +++ b/test/rubygems/test_gem_dependency_resolver.rb @@ -15,7 +15,9 @@ class TestGemDependencyResolver < Gem::TestCase exp = expected.sort_by { |s| s.full_name } act = actual.map { |a| a.spec }.sort_by { |s| s.full_name } - assert_equal exp, act + msg = "Set of gems was not the same: #{exp.map { |x| x.full_name}.inspect} != #{act.map { |x| x.full_name}.inspect}" + + assert_equal exp, act, msg end def test_no_overlap_specificly @@ -64,6 +66,32 @@ class TestGemDependencyResolver < Gem::TestCase assert_set [a2], res.resolve end + def test_picks_best_platform + is = Gem::DependencyResolver::IndexSpecification + unknown = Gem::Platform.new 'unknown' + a2_p1 = quick_spec 'a', 2 do |s| s.platform = Gem::Platform.local end + a3_p2 = quick_spec 'a', 3 do |s| s.platform = unknown end + v2 = v(2) + v3 = v(3) + source = Gem::Source.new @gem_repo + + s = set + + a2 = is.new s, 'a', v2, source, Gem::Platform::RUBY + a2_p1 = is.new s, 'a', v2, source, Gem::Platform.local.to_s + a3_p2 = is.new s, 'a', v3, source, unknown + + s.add a3_p2 + s.add a2_p1 + s.add a2 + + ad = make_dep "a" + + res = Gem::DependencyResolver.new([ad], s) + + assert_set [a2_p1], res.resolve + end + def test_only_returns_spec_once a1 = util_spec "a", "1", "c" => "= 1" b1 = util_spec "b", "1", "c" => "= 1" @@ -177,7 +205,8 @@ class TestGemDependencyResolver < Gem::TestCase r.resolve end - assert_equal "unable to find any gem matching dependency 'a (>= 0)'", e.message + assert_equal "Unable to resolve dependency: (unknown) requires a (>= 0)", + e.message assert_equal "a (>= 0)", e.dependency.to_s end @@ -215,7 +244,7 @@ class TestGemDependencyResolver < Gem::TestCase r.resolve end - assert_equal "detected 1 conflict with dependency 'c (>= 2)'", e.message + assert_match "a-1 requires c (>= 2) but it conflicted", e.message assert_equal "c (>= 2)", e.dependency.to_s @@ -324,4 +353,18 @@ class TestGemDependencyResolver < Gem::TestCase assert_set [b1, c1, d2], r.resolve end + + def test_select_local_platforms + r = Gem::DependencyResolver.new nil, nil + + a1 = quick_spec 'a', 1 + a1_p1 = quick_spec 'a', 1 do |s| s.platform = Gem::Platform.local end + a1_p2 = quick_spec 'a', 1 do |s| s.platform = 'unknown' end + + selected = r.select_local_platforms [a1, a1_p1, a1_p2] + + assert_equal [a1, a1_p1], selected + end + end + -- cgit v1.2.3