summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-07-30 22:10:21 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-07-30 22:10:21 +0000
commit310d77d4b05d1aa166616ca323ebcc7f67bc7378 (patch)
treec778eba7300c7eec523962d80f973d1ab1f18a4e /test
parentd82e5cc4cc0c3340a9fa92f795751d495e13efe1 (diff)
* lib/rubygems: Import RubyGems from master as of commit 523551c
* test/rubygems: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42257 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/rubygems/encrypted_private_key.pem52
-rw-r--r--test/rubygems/test_gem_ext_builder.rb93
-rw-r--r--test/rubygems/test_gem_installer.rb89
-rw-r--r--test/rubygems/test_gem_package.rb14
-rw-r--r--test/rubygems/test_gem_security.rb10
-rw-r--r--test/rubygems/test_gem_specification.rb19
6 files changed, 149 insertions, 128 deletions
diff --git a/test/rubygems/encrypted_private_key.pem b/test/rubygems/encrypted_private_key.pem
index 6acfda6ce4..2a9affd18b 100644
--- a/test/rubygems/encrypted_private_key.pem
+++ b/test/rubygems/encrypted_private_key.pem
@@ -1,30 +1,30 @@
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
-DEK-Info: AES-256-CBC,1AC78C928C296A1D7C70D525B0F1051C
+DEK-Info: DES-CBC,27887B3B3BAA3B18
-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
+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
-----END RSA PRIVATE KEY-----
diff --git a/test/rubygems/test_gem_ext_builder.rb b/test/rubygems/test_gem_ext_builder.rb
index 14a77b8db3..fa28df2786 100644
--- a/test/rubygems/test_gem_ext_builder.rb
+++ b/test/rubygems/test_gem_ext_builder.rb
@@ -1,5 +1,6 @@
require 'rubygems/test_case'
require 'rubygems/ext'
+require 'rubygems/installer'
class TestGemExtBuilder < Gem::TestCase
@@ -13,6 +14,10 @@ class TestGemExtBuilder < Gem::TestCase
FileUtils.mkdir_p @dest_path
@orig_DESTDIR = ENV['DESTDIR']
+
+ @spec = quick_spec 'a'
+
+ @builder = Gem::Ext::Builder.new @spec, ''
end
def teardown
@@ -54,5 +59,93 @@ install:
assert_match %r%^install: destination$%, results
end
+ def test_build_extensions_none
+ use_ui @ui do
+ @builder.build_extensions
+ end
+
+ assert_equal '', @ui.output
+ assert_equal '', @ui.error
+
+ refute File.exist?('gem_make.out')
+ end
+
+ def test_build_extensions_extconf_bad
+ @spec.extensions << 'extconf.rb'
+
+ e = assert_raises Gem::Installer::ExtensionBuildError do
+ use_ui @ui do
+ @builder.build_extensions
+ end
+ end
+
+ assert_match(/\AERROR: Failed to build gem native extension.$/, e.message)
+
+ assert_equal "Building native extensions. This could take a while...\n",
+ @ui.output
+ assert_equal '', @ui.error
+
+ gem_make_out = File.join @gemhome, 'gems', @spec.full_name, 'gem_make.out'
+
+ assert_match %r%#{Regexp.escape Gem.ruby} extconf\.rb%,
+ File.read(gem_make_out)
+ assert_match %r%#{Regexp.escape Gem.ruby}: No such file%,
+ File.read(gem_make_out)
+ end
+
+ def test_build_extensions_unsupported
+ FileUtils.mkdir_p @spec.gem_dir
+ gem_make_out = File.join @spec.gem_dir, 'gem_make.out'
+ @spec.extensions << nil
+
+ e = assert_raises Gem::Installer::ExtensionBuildError do
+ use_ui @ui do
+ @builder.build_extensions
+ end
+ end
+
+ assert_match(/^\s*No builder for extension ''$/, e.message)
+
+ assert_equal "Building native extensions. This could take a while...\n",
+ @ui.output
+ assert_equal '', @ui.error
+
+ assert_equal "No builder for extension ''\n", File.read(gem_make_out)
+ ensure
+ FileUtils.rm_f gem_make_out
+ end
+
+ def test_build_extensions_with_build_args
+ args = ["--aa", "--bb"]
+ @builder.build_args = args
+ @spec.extensions << 'extconf.rb'
+
+ FileUtils.mkdir_p @spec.gem_dir
+
+ open File.join(@spec.gem_dir, "extconf.rb"), "w" do |f|
+ f.write <<-'RUBY'
+ puts "IN EXTCONF"
+ extconf_args = File.join File.dirname(__FILE__), 'extconf_args'
+ File.open extconf_args, 'w' do |f|
+ f.puts ARGV.inspect
+ end
+
+ File.open 'Makefile', 'w' do |f|
+ f.puts "default:\n\techo built"
+ f.puts "install:\n\techo installed"
+ end
+ RUBY
+ end
+
+ use_ui @ui do
+ @builder.build_extensions
+ end
+
+ path = File.join @spec.gem_dir, "extconf_args"
+
+ assert_equal args.inspect, File.read(path).strip
+ assert File.directory? File.join(@spec.gem_dir, 'lib')
+ end
+
end
diff --git a/test/rubygems/test_gem_installer.rb b/test/rubygems/test_gem_installer.rb
index fbc7cd05d4..ba9253b50c 100644
--- a/test/rubygems/test_gem_installer.rb
+++ b/test/rubygems/test_gem_installer.rb
@@ -55,95 +55,6 @@ load Gem.bin_path('a', 'executable', version)
assert_equal expected, wrapper
end
- def test_build_extensions_none
- use_ui @ui do
- @installer.build_extensions
- end
-
- assert_equal '', @ui.output
- assert_equal '', @ui.error
-
- refute File.exist?('gem_make.out')
- end
-
- def test_build_extensions_extconf_bad
- @installer.spec = @spec
- @spec.extensions << 'extconf.rb'
-
- e = assert_raises Gem::Installer::ExtensionBuildError do
- use_ui @ui do
- @installer.build_extensions
- end
- end
-
- assert_match(/\AERROR: Failed to build gem native extension.$/, e.message)
-
- assert_equal "Building native extensions. This could take a while...\n",
- @ui.output
- assert_equal '', @ui.error
-
- gem_make_out = File.join @gemhome, 'gems', @spec.full_name, 'gem_make.out'
-
- assert_match %r%#{Regexp.escape Gem.ruby} extconf\.rb%,
- File.read(gem_make_out)
- assert_match %r%#{Regexp.escape Gem.ruby}: No such file%,
- File.read(gem_make_out)
- end
-
- def test_build_extensions_unsupported
- @installer.spec = @spec
- FileUtils.mkdir_p @spec.gem_dir
- gem_make_out = File.join @spec.gem_dir, 'gem_make.out'
- @spec.extensions << nil
-
- e = assert_raises Gem::Installer::ExtensionBuildError do
- use_ui @ui do
- @installer.build_extensions
- end
- end
-
- assert_match(/^\s*No builder for extension ''$/, e.message)
-
- assert_equal "Building native extensions. This could take a while...\n",
- @ui.output
- assert_equal '', @ui.error
-
- assert_equal "No builder for extension ''\n", File.read(gem_make_out)
- ensure
- FileUtils.rm_f gem_make_out
- end
-
- def test_build_extensions_with_build_args
- args = ["--aa", "--bb"]
- @installer.build_args = args
- @installer.spec = @spec
- @spec.extensions << 'extconf.rb'
-
- File.open File.join(@spec.gem_dir, "extconf.rb"), "w" do |f|
- f.write <<-'RUBY'
- puts "IN EXTCONF"
- extconf_args = File.join File.dirname(__FILE__), 'extconf_args'
- File.open extconf_args, 'w' do |f|
- f.puts ARGV.inspect
- end
-
- File.open 'Makefile', 'w' do |f|
- f.puts "default:\n\techo built"
- f.puts "install:\n\techo installed"
- end
- RUBY
- end
-
- use_ui @ui do
- @installer.build_extensions
- end
-
- path = File.join @spec.gem_dir, "extconf_args"
-
- assert_equal args.inspect, File.read(path).strip
- assert File.directory? File.join(@spec.gem_dir, 'lib')
- end
-
def test_check_executable_overwrite
@installer.generate_bin
diff --git a/test/rubygems/test_gem_package.rb b/test/rubygems/test_gem_package.rb
index 55bb32af04..eaa7ff813c 100644
--- a/test/rubygems/test_gem_package.rb
+++ b/test/rubygems/test_gem_package.rb
@@ -64,13 +64,16 @@ class TestGemPackage < Gem::Package::TarTestCase
reader = Gem::Package::TarReader.new gem_io
checksums = nil
+ tar = nil
reader.each_entry do |entry|
case entry.full_name
- when 'checksums.yaml.gz'
+ when 'checksums.yaml.gz' then
Zlib::GzipReader.wrap entry do |io|
checksums = io.read
end
+ when 'data.tar.gz' then
+ tar = entry.read
end
end
@@ -83,22 +86,17 @@ class TestGemPackage < Gem::Package::TarTestCase
metadata_sha1 = Digest::SHA1.hexdigest s.string
metadata_sha512 = Digest::SHA512.hexdigest s.string
- data_digests = nil
- util_tar do |tar|
- data_digests = package.add_contents tar
- end
-
expected = {
'SHA512' => {
'metadata.gz' => metadata_sha512,
- 'data.tar.gz' => data_digests['SHA512'].hexdigest,
+ 'data.tar.gz' => Digest::SHA512.hexdigest(tar),
}
}
if defined?(OpenSSL::Digest) then
expected['SHA1'] = {
'metadata.gz' => metadata_sha1,
- 'data.tar.gz' => data_digests['SHA1'].hexdigest,
+ 'data.tar.gz' => Digest::SHA1.hexdigest(tar),
}
end
diff --git a/test/rubygems/test_gem_security.rb b/test/rubygems/test_gem_security.rb
index 2e6a56fc8f..b8747b79c3 100644
--- a/test/rubygems/test_gem_security.rb
+++ b/test/rubygems/test_gem_security.rb
@@ -99,7 +99,7 @@ class TestGemSecurity < Gem::TestCase
end
def test_class_create_key
- key = @SEC.create_key 256
+ key = @SEC.create_key 1024
assert_kind_of OpenSSL::PKey::RSA, key
end
@@ -251,7 +251,7 @@ class TestGemSecurity < Gem::TestCase
end
def test_class_write
- key = @SEC.create_key 256
+ key = @SEC.create_key 1024
path = File.join @tempdir, 'test-private_key.pem'
@@ -265,7 +265,7 @@ class TestGemSecurity < Gem::TestCase
end
def test_class_write_encrypted
- key = @SEC.create_key 256
+ key = @SEC.create_key 1024
path = File.join @tempdir, 'test-private_encrypted_key.pem'
@@ -281,13 +281,13 @@ class TestGemSecurity < Gem::TestCase
end
def test_class_write_encrypted_cipher
- key = @SEC.create_key 256
+ key = @SEC.create_key 1024
path = File.join @tempdir, 'test-private_encrypted__with_non_default_cipher_key.pem'
passphrase = 'It should be long.'
- cipher = OpenSSL::Cipher.new('aes192')
+ cipher = OpenSSL::Cipher.new 'AES-192-CBC'
@SEC.write key, path, 0600, passphrase, cipher
diff --git a/test/rubygems/test_gem_specification.rb b/test/rubygems/test_gem_specification.rb
index 07f6572448..dce7ad260b 100644
--- a/test/rubygems/test_gem_specification.rb
+++ b/test/rubygems/test_gem_specification.rb
@@ -828,6 +828,25 @@ dependencies: []
assert_equal %w[a], Gem::Specification.outdated
end
+ def test_self_outdated_and_latest_remotes
+ util_clear_gems
+ util_setup_fake_fetcher true
+
+ a4 = quick_gem @a1.name, '4'
+ util_build_gem a4
+ b3 = quick_gem @b2.name, '3'
+ util_build_gem b3
+ util_setup_spec_fetcher @a1, @a2, @a3a, a4, @b2, b3
+
+ Gem::Specification.remove_spec @a1
+ Gem::Specification.remove_spec @a2
+ Gem::Specification.remove_spec a4
+ Gem::Specification.remove_spec b3
+
+ assert_equal [[@a3a, a4.version], [@b2, b3.version]],
+ Gem::Specification.outdated_and_latest_version.to_a
+ end
+
DATA_PATH = File.expand_path "../data", __FILE__
def test_handles_private_null_type