aboutsummaryrefslogtreecommitdiffstats
path: root/test/rubygems/test_gem_installer.rb
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-04-17 21:17:56 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-04-17 21:17:56 +0000
commit0ebe38eedd3b0b0771f57e1d4a85d472a1b6b64f (patch)
tree3fd875633a962ad584d787f536e5ced1697e058e /test/rubygems/test_gem_installer.rb
parent02dc9ae773d458be60f3fa656d5bb50f41a1c9e2 (diff)
downloadruby-0ebe38eedd3b0b0771f57e1d4a85d472a1b6b64f.tar.gz
Revert r35370 due to bad source branch
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rubygems/test_gem_installer.rb')
-rw-r--r--test/rubygems/test_gem_installer.rb212
1 files changed, 18 insertions, 194 deletions
diff --git a/test/rubygems/test_gem_installer.rb b/test/rubygems/test_gem_installer.rb
index d40fbc93bf..3c6fb45589 100644
--- a/test/rubygems/test_gem_installer.rb
+++ b/test/rubygems/test_gem_installer.rb
@@ -2,23 +2,26 @@ require 'rubygems/installer_test_case'
class TestGemInstaller < Gem::InstallerTestCase
- def util_setup_install
- @gemhome = @installer_tmp
- Gem.use_paths @installer_tmp
+ def setup
+ super
- @spec = Gem::Specification.find_by_name 'a'
- @user_spec = Gem::Specification.find_by_name 'b'
+ if __name__ !~ /^test_install(_|$)/ then
+ @gemhome = @installer_tmp
+ Gem.use_paths @installer_tmp
- @installer.spec = @spec
- @installer.gem_home = @installer_tmp
- @installer.gem_dir = @spec.gem_dir
- @user_installer.spec = @user_spec
- @user_installer.gem_home = @installer_tmp
+ @spec = Gem::Specification.find_by_name 'a'
+ @user_spec = Gem::Specification.find_by_name 'b'
+
+ @installer.spec = @spec
+ @installer.gem_home = @installer_tmp
+ @installer.gem_dir = @spec.gem_dir
+ @user_installer.spec = @user_spec
+ @user_installer.gem_home = @installer_tmp
+ end
end
- def test_app_script_text
- util_setup_install
+ def test_app_script_text
@spec.version = 2
util_make_exec @spec, ''
@@ -35,13 +38,9 @@ require 'rubygems'
version = \">= 0\"
-if ARGV.first
- str = ARGV.first
- str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
- if str =~ /\\A_(.*)_\\z/
- version = $1
- ARGV.shift
- end
+if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
+ version = $1
+ ARGV.shift
end
gem 'a', version
@@ -53,8 +52,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_build_extensions_none
- util_setup_install
-
use_ui @ui do
@installer.build_extensions
end
@@ -66,8 +63,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_build_extensions_extconf_bad
- util_setup_install
-
@spec.extensions << 'extconf.rb'
e = assert_raises Gem::Installer::ExtensionBuildError do
@@ -91,8 +86,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_build_extensions_unsupported
- util_setup_install
-
gem_make_out = File.join @gemhome, 'gems', @spec.full_name, 'gem_make.out'
@spec.extensions << nil
@@ -114,8 +107,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_ensure_dependency
- util_setup_install
-
dep = Gem::Dependency.new 'a', '>= 2'
assert @installer.ensure_dependency(@spec, dep)
@@ -128,8 +119,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_extract_files
- util_setup_install
-
format = Object.new
def format.file_entries
[[{'size' => 7, 'mode' => 0400, 'path' => 'thefile'}, 'content']]
@@ -148,8 +137,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_extract_files_bad_dest
- util_setup_install
-
@installer.gem_dir = 'somedir'
@installer.format = nil
e = assert_raises ArgumentError do
@@ -160,8 +147,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_extract_files_relative
- util_setup_install
-
format = Object.new
def format.file_entries
[[{'size' => 10, 'mode' => 0644, 'path' => '../thefile'}, '../thefile']]
@@ -181,8 +166,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_extract_files_absolute
- util_setup_install
-
format = Object.new
def format.file_entries
[[{'size' => 8, 'mode' => 0644, 'path' => '/thefile'}, '/thefile']]
@@ -200,8 +183,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_generate_bin_bindir
- util_setup_install
-
@installer.wrappers = true
@spec.executables = %w[executable]
@@ -227,8 +208,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_generate_bin_bindir_with_user_install_warning
- util_setup_install
-
bin_dir = Gem.win_platform? ? File.expand_path(ENV["WINDIR"]) : "/usr/bin"
options = {
@@ -248,8 +227,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_generate_bin_script
- util_setup_install
-
@installer.wrappers = true
util_make_exec
@installer.gem_dir = util_gem_dir
@@ -265,8 +242,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_generate_bin_script_format
- util_setup_install
-
@installer.format_executable = true
@installer.wrappers = true
util_make_exec
@@ -282,8 +257,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_generate_bin_script_format_disabled
- util_setup_install
-
@installer.wrappers = true
util_make_exec
@installer.gem_dir = util_gem_dir
@@ -298,8 +271,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_generate_bin_script_install_dir
- util_setup_install
-
@installer.wrappers = true
@spec.executables = %w[executable]
@@ -324,8 +295,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_generate_bin_script_no_execs
- util_setup_install
-
util_execless
@installer.wrappers = true
@@ -335,8 +304,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_generate_bin_script_no_perms
- util_setup_install
-
@installer.wrappers = true
util_make_exec
@@ -356,8 +323,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_generate_bin_script_no_shebang
- util_setup_install
-
@installer.wrappers = true
@spec.executables = %w[executable]
@@ -381,8 +346,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_generate_bin_script_wrappers
- util_setup_install
-
@installer.wrappers = true
util_make_exec
@installer.gem_dir = util_gem_dir
@@ -408,8 +371,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_generate_bin_symlink
- util_setup_install
-
return if win_platform? #Windows FS do not support symlinks
@installer.wrappers = false
@@ -425,8 +386,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_generate_bin_symlink_no_execs
- util_setup_install
-
util_execless
@installer.wrappers = false
@@ -436,8 +395,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_generate_bin_symlink_no_perms
- util_setup_install
-
@installer.wrappers = false
util_make_exec
@installer.gem_dir = util_gem_dir
@@ -458,8 +415,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_generate_bin_symlink_update_newer
- util_setup_install
-
return if win_platform? #Windows FS do not support symlinks
@installer.wrappers = false
@@ -491,8 +446,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_generate_bin_symlink_update_older
- util_setup_install
-
return if win_platform? #Windows FS do not support symlinks
@installer.wrappers = false
@@ -529,8 +482,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_generate_bin_symlink_update_remove_wrapper
- util_setup_install
-
return if win_platform? #Windows FS do not support symlinks
@installer.wrappers = true
@@ -562,8 +513,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_generate_bin_symlink_win32
- util_setup_install
-
old_win_platform = Gem.win_platform?
Gem.win_platform = true
@installer.wrappers = false
@@ -588,8 +537,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_generate_bin_uses_default_shebang
- util_setup_install
-
return if win_platform? #Windows FS do not support symlinks
@installer.wrappers = true
@@ -673,95 +620,6 @@ load Gem.bin_path('a', 'executable', version)
assert_same @installer, @pre_install_hook_arg
end
- def test_install_creates_working_binstub
- Dir.mkdir util_inst_bindir
- util_setup_gem
- util_clear_gems
-
- @installer.wrappers = true
-
- gemdir = File.join @gemhome, 'gems', @spec.full_name
-
- @newspec = nil
- build_rake_in do
- use_ui @ui do
- @newspec = @installer.install
- end
- end
-
- exe = File.join gemdir, 'bin', 'executable'
-
- e = assert_raises RuntimeError do
- instance_eval File.read(exe)
- end
-
- assert_match(/ran executable/, e.message)
- end
-
- def test_install_creates_binstub_that_understand_version
- Dir.mkdir util_inst_bindir
- util_setup_gem
- util_clear_gems
-
- @installer.wrappers = true
-
- @newspec = nil
- build_rake_in do
- use_ui @ui do
- @newspec = @installer.install
- end
- end
-
- exe = File.join @gemhome, 'bin', 'executable'
-
- ARGV.unshift "_3.0_"
-
- begin
- Gem::Specification.reset
-
- e = assert_raises Gem::LoadError do
- instance_eval File.read(exe)
- end
- ensure
- ARGV.shift if ARGV.first == "_3.0_"
- end
-
- assert_match(/\(= 3\.0\)/, e.message)
- end
-
- def test_install_creates_binstub_that_dont_trust_encoding
- skip unless "".respond_to?(:force_encoding)
-
- Dir.mkdir util_inst_bindir
- util_setup_gem
- util_clear_gems
-
- @installer.wrappers = true
-
- @newspec = nil
- build_rake_in do
- use_ui @ui do
- @newspec = @installer.install
- end
- end
-
- exe = File.join @gemhome, 'bin', 'executable'
-
- ARGV.unshift "\xE4pfel".force_encoding("UTF-8")
-
- begin
- Gem::Specification.reset
-
- e = assert_raises RuntimeError do
- instance_eval File.read(exe)
- end
- ensure
- ARGV.shift if ARGV.first == "\xE4pfel"
- end
-
- assert_match(/ran executable/, e.message)
- end
-
def test_install_with_no_prior_files
Dir.mkdir util_inst_bindir
util_clear_gems
@@ -1031,8 +889,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_installation_satisfies_dependency_eh
- util_setup_install
-
dep = Gem::Dependency.new 'a', '>= 2'
assert @installer.installation_satisfies_dependency?(dep)
@@ -1041,8 +897,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_shebang
- util_setup_install
-
util_make_exec @spec, "#!/usr/bin/ruby"
shebang = @installer.shebang 'executable'
@@ -1051,8 +905,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_shebang_arguments
- util_setup_install
-
util_make_exec @spec, "#!/usr/bin/ruby -ws"
shebang = @installer.shebang 'executable'
@@ -1061,8 +913,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_shebang_empty
- util_setup_install
-
util_make_exec @spec, ''
shebang = @installer.shebang 'executable'
@@ -1070,8 +920,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_shebang_env
- util_setup_install
-
util_make_exec @spec, "#!/usr/bin/env ruby"
shebang = @installer.shebang 'executable'
@@ -1080,8 +928,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_shebang_env_arguments
- util_setup_install
-
util_make_exec @spec, "#!/usr/bin/env ruby -ws"
shebang = @installer.shebang 'executable'
@@ -1090,8 +936,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_shebang_env_shebang
- util_setup_install
-
util_make_exec @spec, ''
@installer.env_shebang = true
@@ -1104,8 +948,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_shebang_nested
- util_setup_install
-
util_make_exec @spec, "#!/opt/local/ruby/bin/ruby"
shebang = @installer.shebang 'executable'
@@ -1114,8 +956,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_shebang_nested_arguments
- util_setup_install
-
util_make_exec @spec, "#!/opt/local/ruby/bin/ruby -ws"
shebang = @installer.shebang 'executable'
@@ -1124,8 +964,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_shebang_version
- util_setup_install
-
util_make_exec @spec, "#!/usr/bin/ruby18"
shebang = @installer.shebang 'executable'
@@ -1134,8 +972,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_shebang_version_arguments
- util_setup_install
-
util_make_exec @spec, "#!/usr/bin/ruby18 -ws"
shebang = @installer.shebang 'executable'
@@ -1144,8 +980,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_shebang_version_env
- util_setup_install
-
util_make_exec @spec, "#!/usr/bin/env ruby18"
shebang = @installer.shebang 'executable'
@@ -1154,8 +988,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_shebang_version_env_arguments
- util_setup_install
-
util_make_exec @spec, "#!/usr/bin/env ruby18 -ws"
shebang = @installer.shebang 'executable'
@@ -1164,8 +996,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_unpack
- util_setup_install
-
util_setup_gem
dest = File.join @gemhome, 'gems', @spec.full_name
@@ -1177,8 +1007,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_write_spec
- util_setup_install
-
spec_dir = File.join @gemhome, 'specifications'
spec_file = File.join spec_dir, @spec.spec_name
FileUtils.rm spec_file
@@ -1194,8 +1022,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_write_spec_writes_cached_spec
- util_setup_install
-
spec_dir = File.join @gemhome, 'specifications'
spec_file = File.join spec_dir, @spec.spec_name
FileUtils.rm spec_file
@@ -1215,8 +1041,6 @@ load Gem.bin_path('a', 'executable', version)
end
def test_dir
- util_setup_install
-
assert_match @installer.dir, %r!/installer/gems/a-2$!
end