summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorryan <ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-03-09 22:32:29 +0000
committerryan <ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-03-09 22:32:29 +0000
commit6e5f49770c9b9be151e3142a575abe99a69b0d14 (patch)
tree15495cf2652a8a3d2010ace89b0813e8589341bd /test
parent08c07a215d3d4b5e26293d9d52bc06b486f15844 (diff)
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
Diffstat (limited to 'test')
-rw-r--r--test/rubygems/test_gem.rb60
-rw-r--r--test/rubygems/test_gem_dependency_list.rb18
-rw-r--r--test/rubygems/test_gem_indexer.rb2
-rw-r--r--test/rubygems/test_gem_installer.rb14
-rw-r--r--test/rubygems/test_gem_requirement.rb4
-rw-r--r--test/rubygems/test_gem_spec_fetcher.rb5
-rw-r--r--test/rubygems/test_gem_specification.rb8
-rw-r--r--test/rubygems/test_gem_stream_ui.rb12
-rw-r--r--test/runner.rb2
9 files changed, 97 insertions, 28 deletions
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
@@ -372,14 +372,6 @@ end
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
end
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
diff --git a/test/runner.rb b/test/runner.rb
index 441bb0782e..93eb98c0b2 100644
--- a/test/runner.rb
+++ b/test/runner.rb
@@ -3,7 +3,7 @@ require 'rbconfig'
require 'test/unit'
src_testdir = File.dirname(File.expand_path(__FILE__))
-srcdir = File.dirname(src_testdir)
+$LOAD_PATH << src_testdir
require_relative 'profile_test_all' if ENV['RUBY_TEST_ALL_PROFILE'] == 'true'