summaryrefslogtreecommitdiff
path: root/test/rubygems/test_gem.rb
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-01-07 01:19:28 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-01-07 01:19:28 +0000
commitd5e810dbd24cb92dc86d2d5b048f239315b15ba8 (patch)
tree0656ac1f6abe26dd1f1349f25ece23a534b1a0dc /test/rubygems/test_gem.rb
parent738b8872ef871cbfd78730142049cd1fe94a95fa (diff)
* ChangeLog:
* lib/rubygems/basic_specification.rb (class Gem): * lib/rubygems/commands/contents_command.rb (prefix or only the files that are requir): * lib/rubygems/commands/install_command.rb (to write the specification by hand): * lib/rubygems/commands/setup_command.rb (class Gem): * lib/rubygems/commands/setup_command.rb (TEXT): * lib/rubygems/compatibility.rb (module Gem): * lib/rubygems/defaults.rb (module Gem): * lib/rubygems/deprecate.rb (module Gem): * lib/rubygems/installer.rb (class Gem): * lib/rubygems/platform.rb (class Gem): * lib/rubygems/rdoc.rb (class Gem): * lib/rubygems/request_set/lockfile.rb (class Gem): * lib/rubygems/resolver/installer_set.rb (class Gem): * lib/rubygems/resolver.rb (class Gem): * lib/rubygems/specification.rb (class Gem): * lib/rubygems/test_case.rb (class Gem): * lib/rubygems/test_case.rb (Also): * lib/rubygems/uninstaller.rb (class Gem): * lib/rubygems.rb (module Gem): * test/rubygems/test_gem.rb (class TestGem): * test/rubygems/test_gem_commands_contents_command.rb (lib): * test/rubygems/test_gem_commands_environment_command.rb (class TestGemCommandsEnvironmentCommand): * test/rubygems/test_gem_commands_install_command.rb (ERROR): * test/rubygems/test_gem_commands_update_command.rb (class TestGemCommandsUpdateCommand): * test/rubygems/test_gem_dependency_installer.rb (class TestGemDependencyInstaller): * test/rubygems/test_gem_installer.rb (load Gem): * test/rubygems/test_gem_installer.rb (gem): * test/rubygems/test_gem_request_set_lockfile.rb (GEM): * test/rubygems/test_gem_request_set_lockfile.rb (DEPENDENCIES): * test/rubygems/test_gem_specification.rb (dependencies): * test/rubygems/test_gem_specification.rb (duplicate dependency on b): * test/rubygems/test_gem_uninstaller.rb (class TestGemUninstaller): git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44515 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rubygems/test_gem.rb')
-rw-r--r--test/rubygems/test_gem.rb102
1 files changed, 62 insertions, 40 deletions
diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb
index 759c2fe907..513f2d4e58 100644
--- a/test/rubygems/test_gem.rb
+++ b/test/rubygems/test_gem.rb
@@ -199,30 +199,30 @@ class TestGem < Gem::TestCase
end
def test_self_default_exec_format
- orig_RUBY_INSTALL_NAME = Gem::ConfigMap[:ruby_install_name]
- Gem::ConfigMap[:ruby_install_name] = 'ruby'
+ orig_RUBY_INSTALL_NAME = RbConfig::CONFIG['ruby_install_name']
+ RbConfig::CONFIG['ruby_install_name'] = 'ruby'
assert_equal '%s', Gem.default_exec_format
ensure
- Gem::ConfigMap[:ruby_install_name] = orig_RUBY_INSTALL_NAME
+ RbConfig::CONFIG['ruby_install_name'] = orig_RUBY_INSTALL_NAME
end
def test_self_default_exec_format_18
- orig_RUBY_INSTALL_NAME = Gem::ConfigMap[:ruby_install_name]
- Gem::ConfigMap[:ruby_install_name] = 'ruby18'
+ orig_RUBY_INSTALL_NAME = RbConfig::CONFIG['ruby_install_name']
+ RbConfig::CONFIG['ruby_install_name'] = 'ruby18'
assert_equal '%s18', Gem.default_exec_format
ensure
- Gem::ConfigMap[:ruby_install_name] = orig_RUBY_INSTALL_NAME
+ RbConfig::CONFIG['ruby_install_name'] = orig_RUBY_INSTALL_NAME
end
def test_self_default_exec_format_jruby
- orig_RUBY_INSTALL_NAME = Gem::ConfigMap[:ruby_install_name]
- Gem::ConfigMap[:ruby_install_name] = 'jruby'
+ orig_RUBY_INSTALL_NAME = RbConfig::CONFIG['ruby_install_name']
+ RbConfig::CONFIG['ruby_install_name'] = 'jruby'
assert_equal 'j%s', Gem.default_exec_format
ensure
- Gem::ConfigMap[:ruby_install_name] = orig_RUBY_INSTALL_NAME
+ RbConfig::CONFIG['ruby_install_name'] = orig_RUBY_INSTALL_NAME
end
def test_self_default_sources
@@ -230,6 +230,7 @@ class TestGem < Gem::TestCase
end
def test_self_detect_gemdeps
+ skip 'Insecure operation - chdir' if RUBY_VERSION <= "1.8.7"
rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], '-'
FileUtils.mkdir_p 'detect/a/b'
@@ -565,24 +566,43 @@ class TestGem < Gem::TestCase
end
def test_self_prefix_libdir
- orig_libdir = Gem::ConfigMap[:libdir]
- Gem::ConfigMap[:libdir] = @@project_dir
+ orig_libdir = RbConfig::CONFIG['libdir']
+ RbConfig::CONFIG['libdir'] = @@project_dir
assert_nil Gem.prefix
ensure
- Gem::ConfigMap[:libdir] = orig_libdir
+ RbConfig::CONFIG['libdir'] = orig_libdir
end
def test_self_prefix_sitelibdir
- orig_sitelibdir = Gem::ConfigMap[:sitelibdir]
- Gem::ConfigMap[:sitelibdir] = @@project_dir
+ orig_sitelibdir = RbConfig::CONFIG['sitelibdir']
+ RbConfig::CONFIG['sitelibdir'] = @@project_dir
assert_nil Gem.prefix
ensure
- Gem::ConfigMap[:sitelibdir] = orig_sitelibdir
+ RbConfig::CONFIG['sitelibdir'] = orig_sitelibdir
+ end
+
+ def test_self_read_binary
+ open 'test', 'w' do |io|
+ io.write "\xCF\x80"
+ end
+
+ assert_equal ["\xCF", "\x80"], Gem.read_binary('test').chars.to_a
+
+ skip 'chmod not supported' if Gem.win_platform?
+
+ begin
+ File.chmod 0444, 'test'
+
+ assert_equal ["\xCF", "\x80"], Gem.read_binary('test').chars.to_a
+ ensure
+ File.chmod 0644, 'test'
+ end
end
def test_self_refresh
+ skip 'Insecure operation - mkdir' if RUBY_VERSION <= "1.8.7"
util_make_gems
a1_spec = @a1.spec_file
@@ -602,6 +622,7 @@ class TestGem < Gem::TestCase
end
def test_self_refresh_keeps_loaded_specs_activated
+ skip 'Insecure operation - mkdir' if RUBY_VERSION <= "1.8.7"
util_make_gems
a1_spec = @a1.spec_file
@@ -624,46 +645,44 @@ class TestGem < Gem::TestCase
def test_self_ruby_escaping_spaces_in_path
orig_ruby = Gem.ruby
- orig_bindir = Gem::ConfigMap[:bindir]
- orig_ruby_install_name = Gem::ConfigMap[:ruby_install_name]
- orig_exe_ext = Gem::ConfigMap[:EXEEXT]
+ orig_bindir = RbConfig::CONFIG['bindir']
+ orig_ruby_install_name = RbConfig::CONFIG['ruby_install_name']
+ orig_exe_ext = RbConfig::CONFIG['EXEEXT']
- Gem::ConfigMap[:bindir] = "C:/Ruby 1.8/bin"
- Gem::ConfigMap[:ruby_install_name] = "ruby"
- Gem::ConfigMap[:EXEEXT] = ".exe"
+ RbConfig::CONFIG['bindir'] = "C:/Ruby 1.8/bin"
+ RbConfig::CONFIG['ruby_install_name'] = "ruby"
+ RbConfig::CONFIG['EXEEXT'] = ".exe"
Gem.instance_variable_set("@ruby", nil)
assert_equal "\"C:/Ruby 1.8/bin/ruby.exe\"", Gem.ruby
ensure
Gem.instance_variable_set("@ruby", orig_ruby)
- Gem::ConfigMap[:bindir] = orig_bindir
- Gem::ConfigMap[:ruby_install_name] = orig_ruby_install_name
- Gem::ConfigMap[:EXEEXT] = orig_exe_ext
+ RbConfig::CONFIG['bindir'] = orig_bindir
+ RbConfig::CONFIG['ruby_install_name'] = orig_ruby_install_name
+ RbConfig::CONFIG['EXEEXT'] = orig_exe_ext
end
def test_self_ruby_path_without_spaces
orig_ruby = Gem.ruby
- orig_bindir = Gem::ConfigMap[:bindir]
- orig_ruby_install_name = Gem::ConfigMap[:ruby_install_name]
- orig_exe_ext = Gem::ConfigMap[:EXEEXT]
+ orig_bindir = RbConfig::CONFIG['bindir']
+ orig_ruby_install_name = RbConfig::CONFIG['ruby_install_name']
+ orig_exe_ext = RbConfig::CONFIG['EXEEXT']
- Gem::ConfigMap[:bindir] = "C:/Ruby18/bin"
- Gem::ConfigMap[:ruby_install_name] = "ruby"
- Gem::ConfigMap[:EXEEXT] = ".exe"
+ RbConfig::CONFIG['bindir'] = "C:/Ruby18/bin"
+ RbConfig::CONFIG['ruby_install_name'] = "ruby"
+ RbConfig::CONFIG['EXEEXT'] = ".exe"
Gem.instance_variable_set("@ruby", nil)
assert_equal "C:/Ruby18/bin/ruby.exe", Gem.ruby
ensure
Gem.instance_variable_set("@ruby", orig_ruby)
- Gem::ConfigMap[:bindir] = orig_bindir
- Gem::ConfigMap[:ruby_install_name] = orig_ruby_install_name
- Gem::ConfigMap[:EXEEXT] = orig_exe_ext
+ RbConfig::CONFIG['bindir'] = orig_bindir
+ RbConfig::CONFIG['ruby_install_name'] = orig_ruby_install_name
+ RbConfig::CONFIG['EXEEXT'] = orig_exe_ext
end
def test_self_ruby_api_version
- orig_MAJOR, Gem::ConfigMap[:MAJOR] = Gem::ConfigMap[:MAJOR], '1'
- orig_MINOR, Gem::ConfigMap[:MINOR] = Gem::ConfigMap[:MINOR], '2'
- orig_TEENY, Gem::ConfigMap[:TEENY] = Gem::ConfigMap[:TEENY], '3'
+ orig_ruby_version, RbConfig::CONFIG['ruby_version'] = RbConfig::CONFIG['ruby_version'], '1.2.3'
Gem.instance_variable_set :@ruby_api_version, nil
@@ -671,9 +690,7 @@ class TestGem < Gem::TestCase
ensure
Gem.instance_variable_set :@ruby_api_version, nil
- Gem::ConfigMap[:MAJOR] = orig_MAJOR
- Gem::ConfigMap[:MINOR] = orig_MINOR
- Gem::ConfigMap[:TEENY] = orig_TEENY
+ RbConfig::CONFIG['ruby_version'] = orig_ruby_version
end
def test_self_ruby_version_1_8_5
@@ -825,7 +842,7 @@ class TestGem < Gem::TestCase
def test_self_user_dir
parts = [@userhome, '.gem', Gem.ruby_engine]
- parts << Gem::ConfigMap[:ruby_version] unless Gem::ConfigMap[:ruby_version].empty?
+ parts << RbConfig::CONFIG['ruby_version'] unless RbConfig::CONFIG['ruby_version'].empty?
assert_equal File.join(parts), Gem.user_dir
end
@@ -857,6 +874,7 @@ class TestGem < Gem::TestCase
end
def test_self_needs_picks_up_unresolved_deps
+ skip 'loading from unsafe file' if RUBY_VERSION <= "1.8.7"
save_loaded_features do
util_clear_gems
a = util_spec "a", "1"
@@ -949,6 +967,7 @@ class TestGem < Gem::TestCase
end
def test_load_plugins
+ skip 'Insecure operation - chdir' if RUBY_VERSION <= "1.8.7"
plugin_path = File.join "lib", "rubygems_plugin.rb"
Dir.chdir @tempdir do
@@ -1102,6 +1121,7 @@ class TestGem < Gem::TestCase
end
def test_auto_activation_of_detected_gemdeps_file
+ skip 'Insecure operation - chdir' if RUBY_VERSION <= "1.8.7"
util_clear_gems
a = new_spec "a", "1", nil, "lib/a.rb"
@@ -1264,6 +1284,7 @@ class TestGem < Gem::TestCase
end
def test_use_gemdeps_automatic
+ skip 'Insecure operation - chdir' if RUBY_VERSION <= "1.8.7"
rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], '-'
spec = util_spec 'a', 1
@@ -1300,6 +1321,7 @@ class TestGem < Gem::TestCase
end
def test_use_gemdeps_specific
+ skip 'Insecure operation - read' if RUBY_VERSION <= "1.8.7"
rubygems_gemdeps, ENV['RUBYGEMS_GEMDEPS'] = ENV['RUBYGEMS_GEMDEPS'], 'x'
spec = util_spec 'a', 1