From 6e5f49770c9b9be151e3142a575abe99a69b0d14 Mon Sep 17 00:00:00 2001 From: ryan Date: Wed, 9 Mar 2011 22:32:29 +0000 Subject: Import rubygems 1.6.2 (release candidate @ 2026fbb5) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/rubygems/test_gem.rb | 60 +++++++++++++++++++++++++------ test/rubygems/test_gem_dependency_list.rb | 18 ++++++++++ test/rubygems/test_gem_indexer.rb | 2 ++ test/rubygems/test_gem_installer.rb | 14 +++++--- test/rubygems/test_gem_requirement.rb | 4 +++ test/rubygems/test_gem_spec_fetcher.rb | 5 ++- test/rubygems/test_gem_specification.rb | 8 ----- test/rubygems/test_gem_stream_ui.rb | 12 ++++++- 8 files changed, 96 insertions(+), 27 deletions(-) (limited to 'test/rubygems') diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb index 98d37a807e..118066b957 100644 --- a/test/rubygems/test_gem.rb +++ b/test/rubygems/test_gem.rb @@ -58,9 +58,9 @@ class TestGem < Gem::TestCase end def test_self_activate_via_require - a1 = new_spec "a", "1", "b" => "= 1" - b1 = new_spec "b", "1", nil, "lib/b/c.rb" - b2 = new_spec "b", "2", nil, "lib/b/c.rb" + new_spec "a", "1", "b" => "= 1" + new_spec "b", "1", nil, "lib/b/c.rb" + new_spec "b", "2", nil, "lib/b/c.rb" Gem.activate "a", "= 1" require "b/c" @@ -139,7 +139,7 @@ class TestGem < Gem::TestCase c2 = new_spec "c", "2" d1 = new_spec "d", "1", nil, "lib/d.rb" - install_specs a1, b1, b2, c1, c2 + install_specs a1, b1, b2, c1, c2, d1 Gem.activate "a", "= 1" assert_equal %w(a-1), loaded_spec_names @@ -161,7 +161,7 @@ class TestGem < Gem::TestCase c1 = new_spec "c", "1", nil, "lib/d.rb" c2 = new_spec("c", "2", { "a" => "1" }, "lib/d.rb") # conflicts with a-2 - install_specs a1, b1, b2, c1, c2 + install_specs a1, a2, b1, b2, c1, c2 Gem.activate "a", "= 2" assert_equal %w(a-2), loaded_spec_names @@ -174,6 +174,46 @@ class TestGem < Gem::TestCase end end + def test_require_already_activated + save_loaded_features do + a1 = new_spec "a", "1", nil, "lib/d.rb" + + install_specs a1 # , a2, b1, b2, c1, c2 + + Gem.activate "a", "= 1" + assert_equal %w(a-1), loaded_spec_names + assert_equal [], unresolved_names + + assert require "d" + + assert_equal %w(a-1), loaded_spec_names + assert_equal [], unresolved_names + end + end + + def test_require_already_activated_indirect_conflict + save_loaded_features do + a1 = new_spec "a", "1", "b" => "> 0" + a2 = new_spec "a", "2", "b" => "> 0" + b1 = new_spec "b", "1", "c" => ">= 1" + b2 = new_spec "b", "2", "c" => ">= 2" + c1 = new_spec "c", "1", nil, "lib/d.rb" + c2 = new_spec("c", "2", { "a" => "1" }, "lib/d.rb") # conflicts with a-2 + + install_specs a1, a2, b1, b2, c1, c2 + + Gem.activate "a", "= 1" + Gem.activate "c", "= 1" + assert_equal %w(a-1 c-1), loaded_spec_names + assert_equal ["b (> 0)"], unresolved_names + + assert require "d" + + assert_equal %w(a-1 c-1), loaded_spec_names + assert_equal ["b (> 0)"], unresolved_names + end + end + def test_require_missing save_loaded_features do assert_raises ::LoadError do @@ -211,11 +251,11 @@ class TestGem < Gem::TestCase # and should resolve using b-1.0 def test_self_activate_over - a, _ = util_spec 'a', '1.0', 'b' => '>= 1.0', 'c' => '= 1.0' - util_spec 'b', '1.0' - util_spec 'b', '1.1' - util_spec 'b', '2.0' - c, _ = util_spec 'c', '1.0', 'b' => '~> 1.0' + util_spec 'a', '1.0', 'b' => '>= 1.0', 'c' => '= 1.0' + util_spec 'b', '1.0' + util_spec 'b', '1.1' + util_spec 'b', '2.0' + util_spec 'c', '1.0', 'b' => '~> 1.0' Gem.activate "a" diff --git a/test/rubygems/test_gem_dependency_list.rb b/test/rubygems/test_gem_dependency_list.rb index 688455475b..4201a31cdd 100644 --- a/test/rubygems/test_gem_dependency_list.rb +++ b/test/rubygems/test_gem_dependency_list.rb @@ -157,6 +157,24 @@ class TestGemDependencyList < Gem::TestCase assert_equal exp, @deplist.why_not_ok? end + def test_why_not_ok_eh_old_dependency + a = new_spec 'a', '1', + 'b' => '~> 1.0' + + b0 = new_spec 'b', '1.0', + 'd' => '>= 0' + + b1 = new_spec 'b', '1.1' + + util_clear_gems + + @deplist.clear + + @deplist.add a, b0, b1 + + assert_equal({}, @deplist.why_not_ok?) + end + def test_ok_eh_mismatch a1 = quick_spec 'a', '1' a2 = quick_spec 'a', '2' diff --git a/test/rubygems/test_gem_indexer.rb b/test/rubygems/test_gem_indexer.rb index 71fb965460..e3c78ecb70 100644 --- a/test/rubygems/test_gem_indexer.rb +++ b/test/rubygems/test_gem_indexer.rb @@ -29,6 +29,8 @@ class TestGemIndexer < Gem::TestCase @d2_0_b = quick_spec 'd', '2.0.b' util_build_gem @d2_0_b + @tempdir = File.join(@tempdir, 'indexer') + gems = File.join(@tempdir, 'gems') FileUtils.mkdir_p gems FileUtils.mv Dir[Gem.cache_gem('*.gem', @gemhome)], gems diff --git a/test/rubygems/test_gem_installer.rb b/test/rubygems/test_gem_installer.rb index 0b73af996d..554865da90 100644 --- a/test/rubygems/test_gem_installer.rb +++ b/test/rubygems/test_gem_installer.rb @@ -187,7 +187,7 @@ load Gem.bin_path('a', 'executable', version) assert_equal true, File.directory?(util_inst_bindir) installed_exec = File.join(util_inst_bindir, 'executable') assert_equal true, File.exist?(installed_exec) - assert_equal(0100755, File.stat(installed_exec).mode) unless win_platform? + assert_equal mask, File.stat(installed_exec).mode unless win_platform? wrapper = File.read installed_exec assert_match %r|generated by RubyGems|, wrapper @@ -202,7 +202,7 @@ load Gem.bin_path('a', 'executable', version) assert_equal true, File.directory?(util_inst_bindir) installed_exec = File.join(util_inst_bindir, 'executable') assert_equal true, File.exist?(installed_exec) - assert_equal(0100755, File.stat(installed_exec).mode) unless win_platform? + assert_equal mask, File.stat(installed_exec).mode unless win_platform? wrapper = File.read installed_exec assert_match %r|generated by RubyGems|, wrapper @@ -255,7 +255,7 @@ load Gem.bin_path('a', 'executable', version) installed_exec = File.join("#{@gemhome}2", 'bin', 'executable') assert_equal true, File.exist?(installed_exec) - assert_equal(0100755, File.stat(installed_exec).mode) unless win_platform? + assert_equal mask, File.stat(installed_exec).mode unless win_platform? wrapper = File.read installed_exec assert_match %r|generated by RubyGems|, wrapper @@ -304,7 +304,7 @@ load Gem.bin_path('a', 'executable', version) installed_exec = File.join @gemhome, 'bin', 'executable' assert_equal true, File.exist?(installed_exec) - assert_equal 0100755, File.stat(installed_exec).mode unless win_platform? + assert_equal mask, File.stat(installed_exec).mode unless win_platform? wrapper = File.read installed_exec assert_match %r|generated by RubyGems|, wrapper @@ -329,7 +329,7 @@ load Gem.bin_path('a', 'executable', version) @installer.generate_bin assert_equal true, File.directory?(util_inst_bindir) assert_equal true, File.exist?(installed_exec) - assert_equal(0100755, File.stat(installed_exec).mode) unless win_platform? + assert_equal mask, File.stat(installed_exec).mode unless win_platform? assert_match %r|generated by RubyGems|, File.read(installed_exec) @@ -1020,5 +1020,9 @@ load Gem.bin_path('a', 'executable', version) @installer = util_installer @spec, gem, @gemhome end + def mask + 0100755 & (~File.umask) + end + end diff --git a/test/rubygems/test_gem_requirement.rb b/test/rubygems/test_gem_requirement.rb index df478190b5..c8490de199 100644 --- a/test/rubygems/test_gem_requirement.rb +++ b/test/rubygems/test_gem_requirement.rb @@ -193,11 +193,15 @@ class TestGemRequirement < Gem::TestCase assert_satisfied_by " ", "> 0.a " assert_satisfied_by "", " > 0.a" assert_satisfied_by "3.1", "< 3.2.rc1" + assert_satisfied_by "3.2.0", "> 3.2.0.rc1" assert_satisfied_by "3.2.0.rc2", "> 3.2.0.rc1" + assert_satisfied_by "3.0.rc2", "< 3.0" assert_satisfied_by "3.0.rc2", "< 3.0.0" assert_satisfied_by "3.0.rc2", "< 3.0.1" + + assert_satisfied_by "3.0.rc2", "> 0" end def test_illformed_requirements diff --git a/test/rubygems/test_gem_spec_fetcher.rb b/test/rubygems/test_gem_spec_fetcher.rb index 20a40b68c1..de7bd9a0fd 100644 --- a/test/rubygems/test_gem_spec_fetcher.rb +++ b/test/rubygems/test_gem_spec_fetcher.rb @@ -414,9 +414,8 @@ class TestGemSpecFetcher < Gem::TestCase def test_cache_dir_escapes_windows_paths uri = URI.parse("file:///C:/WINDOWS/Temp/gem_repo") - cache_dir = @sf.cache_dir(uri) - pos = (/\A[a-z]:/i =~ cache_dir) ? 2 : 0 - refute /:/ =~ cache_dir[pos..-1], "#{cache_dir} should not contain a :" + cache_dir = @sf.cache_dir(uri).gsub(@sf.dir, '') + assert cache_dir !~ /:/, "#{cache_dir} should not contain a :" end end diff --git a/test/rubygems/test_gem_specification.rb b/test/rubygems/test_gem_specification.rb index f820d7c1c3..d7f5772259 100644 --- a/test/rubygems/test_gem_specification.rb +++ b/test/rubygems/test_gem_specification.rb @@ -371,14 +371,6 @@ end assert_equal nil, @a1.default_executable end - def test_dependencies - rake = Gem::Dependency.new 'rake', '> 0.4' - jabber = Gem::Dependency.new 'jabber4r', '> 0.0.0' - pqa = Gem::Dependency.new 'pqa', ['> 0.4', '<= 0.6'] - - assert_equal [rake, jabber, pqa], @a1.dependencies - end - def test_dependencies util_setup_deps assert_equal [@bonobo, @monkey], @gem.dependencies diff --git a/test/rubygems/test_gem_stream_ui.rb b/test/rubygems/test_gem_stream_ui.rb index 1bc0e0bbd5..4bc6df6f93 100644 --- a/test/rubygems/test_gem_stream_ui.rb +++ b/test/rubygems/test_gem_stream_ui.rb @@ -37,10 +37,12 @@ class TestGemStreamUI < Gem::TestCase @in.extend IsTty @out.extend IsTty - @sui = Gem::StreamUI.new @in, @out, @err + @sui = Gem::StreamUI.new @in, @out, @err, true end def test_ask + skip 'TTY detection broken on windows' if Gem.win_platform? + timeout(1) do expected_answer = "Arthur, King of the Britons" @in.string = "#{expected_answer}\n" @@ -50,6 +52,8 @@ class TestGemStreamUI < Gem::TestCase end def test_ask_no_tty + skip 'TTY handling is broken on windows' if Gem.win_platform? + @in.tty = false timeout(0.1) do @@ -70,6 +74,8 @@ class TestGemStreamUI < Gem::TestCase end def test_ask_for_password_no_tty + skip 'TTY handling is broken on windows' if Gem.win_platform? + @in.tty = false timeout(0.1) do @@ -79,6 +85,8 @@ class TestGemStreamUI < Gem::TestCase end def test_ask_yes_no_no_tty_with_default + skip 'TTY handling is broken on windows' if Gem.win_platform? + @in.tty = false timeout(0.1) do @@ -91,6 +99,8 @@ class TestGemStreamUI < Gem::TestCase end def test_ask_yes_no_no_tty_without_default + skip 'TTY handling is broken on windows' if Gem.win_platform? + @in.tty = false timeout(0.1) do -- cgit v1.2.3