From c3546c76c8f1c9d61e65d08e8b2dfca2e2098736 Mon Sep 17 00:00:00 2001 From: hsbt Date: Thu, 5 Feb 2015 13:42:45 +0000 Subject: * lib/rubygems: Update to RubyGems HEAD(5c3b6f3). Fixed #1156, #1142, #1115, #1142, #1139 on rubygems/rubygems * test/rubygems: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49511 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/rubygems/test_gem_request_set_lockfile.rb | 810 +------------------------ 1 file changed, 1 insertion(+), 809 deletions(-) (limited to 'test/rubygems/test_gem_request_set_lockfile.rb') diff --git a/test/rubygems/test_gem_request_set_lockfile.rb b/test/rubygems/test_gem_request_set_lockfile.rb index 7c5cd5a295..f825a8b359 100644 --- a/test/rubygems/test_gem_request_set_lockfile.rb +++ b/test/rubygems/test_gem_request_set_lockfile.rb @@ -24,12 +24,6 @@ class TestGemRequestSetLockfile < Gem::TestCase @lockfile = Gem::RequestSet::Lockfile.new @set, @gem_deps_file end - def write_gem_deps gem_deps - open @gem_deps_file, 'w' do |io| - io.write gem_deps - end - end - def write_lockfile lockfile @lock_file = File.expand_path "#{@gem_deps_file}.lock" @@ -47,7 +41,6 @@ class TestGemRequestSetLockfile < Gem::TestCase @set.gem 'a' @set.resolve - @lockfile.instance_variable_set :@requests, @set.sorted_requests out = [] @@ -75,7 +68,6 @@ class TestGemRequestSetLockfile < Gem::TestCase @set.resolve @lockfile = Gem::RequestSet::Lockfile.new @set, @gem_deps_file, dependencies - @lockfile.instance_variable_set :@requests, @set.sorted_requests out = [] @@ -105,17 +97,10 @@ class TestGemRequestSetLockfile < Gem::TestCase @set.gem 'a' @set.gem 'bundler' @set.resolve - @lockfile.instance_variable_set :@requests, @set.sorted_requests - - spec_groups = @set.sorted_requests.group_by do |request| - request.spec.class - end - @lockfile.instance_variable_set :@spec_groups, spec_groups - out = [] - @lockfile.add_GEM out + @lockfile.add_GEM out, @lockfile.spec_groups expected = [ 'GEM', @@ -143,7 +128,6 @@ class TestGemRequestSetLockfile < Gem::TestCase @set.gem 'a' @set.resolve - @lockfile.instance_variable_set :@requests, @set.sorted_requests out = [] @@ -159,518 +143,6 @@ class TestGemRequestSetLockfile < Gem::TestCase assert_equal expected, out end - def test_get - @lockfile.instance_variable_set :@tokens, [:token] - - assert_equal :token, @lockfile.get - end - - def test_get_type_mismatch - @lockfile.instance_variable_set :@tokens, [[:section, 'x', 5, 1]] - - e = assert_raises Gem::RequestSet::Lockfile::ParseError do - @lockfile.get :text - end - - expected = - 'unexpected token [:section, "x"], expected :text (at line 1 column 5)' - - assert_equal expected, e.message - - assert_equal 1, e.line - assert_equal 5, e.column - assert_equal File.expand_path("#{@gem_deps_file}.lock"), e.path - end - - def test_get_type_multiple - @lockfile.instance_variable_set :@tokens, [[:section, 'x', 5, 1]] - - assert @lockfile.get [:text, :section] - end - - def test_get_type_value_mismatch - @lockfile.instance_variable_set :@tokens, [[:section, 'x', 5, 1]] - - e = assert_raises Gem::RequestSet::Lockfile::ParseError do - @lockfile.get :section, 'y' - end - - expected = - 'unexpected token [:section, "x"], expected [:section, "y"] (at line 1 column 5)' - - assert_equal expected, e.message - - assert_equal 1, e.line - assert_equal 5, e.column - assert_equal File.expand_path("#{@gem_deps_file}.lock"), e.path - end - - def test_parse - write_lockfile <<-LOCKFILE.strip -GEM - remote: #{@gem_repo} - specs: - a (2) - -PLATFORMS - #{Gem::Platform::RUBY} - -DEPENDENCIES - a - LOCKFILE - - @lockfile.parse - - assert_equal [dep('a')], @set.dependencies - - assert_equal [Gem::Platform::RUBY], @lockfile.platforms - - lockfile_set = @set.sets.find do |set| - Gem::Resolver::LockSet === set - end - - assert lockfile_set, 'could not find a LockSet' - - assert_equal %w[a-2], lockfile_set.specs.map { |tuple| tuple.full_name } - end - - def test_parse_dependencies - write_lockfile <<-LOCKFILE -GEM - remote: #{@gem_repo} - specs: - a (2) - -PLATFORMS - #{Gem::Platform::RUBY} - -DEPENDENCIES - a (>= 1, <= 2) - LOCKFILE - - @lockfile.parse - - assert_equal [dep('a', '>= 1', '<= 2')], @set.dependencies - - assert_equal [Gem::Platform::RUBY], @lockfile.platforms - - lockfile_set = @set.sets.find do |set| - Gem::Resolver::LockSet === set - end - - assert lockfile_set, 'could not find a LockSet' - - assert_equal %w[a-2], lockfile_set.specs.map { |tuple| tuple.full_name } - end - - def test_parse_DEPENDENCIES_git - write_lockfile <<-LOCKFILE -GIT - remote: git://git.example/josevalim/rails-footnotes.git - revision: 3a6ac1971e91d822f057650cc5916ebfcbd6ee37 - specs: - rails-footnotes (3.7.9) - rails (>= 3.0.0) - -GIT - remote: git://git.example/svenfuchs/i18n-active_record.git - revision: 55507cf59f8f2173d38e07e18df0e90d25b1f0f6 - specs: - i18n-active_record (0.0.2) - i18n (>= 0.5.0) - -GEM - remote: http://gems.example/ - specs: - i18n (0.6.9) - rails (4.0.0) - -PLATFORMS - ruby - -DEPENDENCIES - i18n-active_record! - rails-footnotes! - LOCKFILE - - @lockfile.parse - - expected = [ - dep('i18n-active_record', '= 0.0.2'), - dep('rails-footnotes', '= 3.7.9'), - ] - - assert_equal expected, @set.dependencies - end - - def test_parse_DEPENDENCIES_git_version - write_lockfile <<-LOCKFILE -GIT - remote: git://github.com/progrium/ruby-jwt.git - revision: 8d74770c6cd92ea234b428b5d0c1f18306a4f41c - specs: - jwt (1.1) - -GEM - remote: http://gems.example/ - specs: - -PLATFORMS - ruby - -DEPENDENCIES - jwt (= 1.1)! - LOCKFILE - - @lockfile.parse - - expected = [ - dep('jwt', '= 1.1'), - ] - - assert_equal expected, @set.dependencies - end - - def test_parse_GEM - write_lockfile <<-LOCKFILE -GEM - specs: - a (2) - -PLATFORMS - ruby - -DEPENDENCIES - a - LOCKFILE - - @lockfile.parse - - assert_equal [dep('a', '>= 0')], @set.dependencies - - lockfile_set = @set.sets.find do |set| - Gem::Resolver::LockSet === set - end - - assert lockfile_set, 'found a LockSet' - - assert_equal %w[a-2], lockfile_set.specs.map { |s| s.full_name } - end - - def test_parse_GEM_remote_multiple - write_lockfile <<-LOCKFILE -GEM - remote: https://gems.example/ - remote: https://other.example/ - specs: - a (2) - -PLATFORMS - ruby - -DEPENDENCIES - a - LOCKFILE - - @lockfile.parse - - assert_equal [dep('a', '>= 0')], @set.dependencies - - lockfile_set = @set.sets.find do |set| - Gem::Resolver::LockSet === set - end - - assert lockfile_set, 'found a LockSet' - - assert_equal %w[a-2 a-2], lockfile_set.specs.map { |s| s.full_name } - - assert_equal %w[https://gems.example/ https://other.example/], - lockfile_set.specs.map { |s| s.source.uri.to_s } - end - - def test_parse_GIT - @set.instance_variable_set :@install_dir, 'install_dir' - - write_lockfile <<-LOCKFILE -GIT - remote: git://example/a.git - revision: master - specs: - a (2) - b (>= 3) - c - -DEPENDENCIES - a! - LOCKFILE - - @lockfile.parse - - assert_equal [dep('a', '= 2')], @set.dependencies - - lockfile_set = @set.sets.find do |set| - Gem::Resolver::LockSet === set - end - - refute lockfile_set, 'fount a LockSet' - - git_set = @set.sets.find do |set| - Gem::Resolver::GitSet === set - end - - assert git_set, 'could not find a GitSet' - - assert_equal %w[a-2], git_set.specs.values.map { |s| s.full_name } - - assert_equal [dep('b', '>= 3'), dep('c')], - git_set.specs.values.first.dependencies - - expected = { - 'a' => %w[git://example/a.git master], - } - - assert_equal expected, git_set.repositories - assert_equal 'install_dir', git_set.root_dir - end - - def test_parse_GIT_branch - write_lockfile <<-LOCKFILE -GIT - remote: git://example/a.git - revision: 1234abc - branch: 0-9-12-stable - specs: - a (2) - b (>= 3) - -DEPENDENCIES - a! - LOCKFILE - - @lockfile.parse - - assert_equal [dep('a', '= 2')], @set.dependencies - - lockfile_set = @set.sets.find do |set| - Gem::Resolver::LockSet === set - end - - refute lockfile_set, 'fount a LockSet' - - git_set = @set.sets.find do |set| - Gem::Resolver::GitSet === set - end - - assert git_set, 'could not find a GitSet' - - expected = { - 'a' => %w[git://example/a.git 1234abc], - } - - assert_equal expected, git_set.repositories - end - - def test_parse_GIT_ref - write_lockfile <<-LOCKFILE -GIT - remote: git://example/a.git - revision: 1234abc - ref: 1234abc - specs: - a (2) - b (>= 3) - -DEPENDENCIES - a! - LOCKFILE - - @lockfile.parse - - assert_equal [dep('a', '= 2')], @set.dependencies - - lockfile_set = @set.sets.find do |set| - Gem::Resolver::LockSet === set - end - - refute lockfile_set, 'fount a LockSet' - - git_set = @set.sets.find do |set| - Gem::Resolver::GitSet === set - end - - assert git_set, 'could not find a GitSet' - - expected = { - 'a' => %w[git://example/a.git 1234abc], - } - - assert_equal expected, git_set.repositories - end - - def test_parse_GIT_tag - write_lockfile <<-LOCKFILE -GIT - remote: git://example/a.git - revision: 1234abc - tag: v0.9.12 - specs: - a (2) - b (>= 3) - -DEPENDENCIES - a! - LOCKFILE - - @lockfile.parse - - assert_equal [dep('a', '= 2')], @set.dependencies - - lockfile_set = @set.sets.find do |set| - Gem::Resolver::LockSet === set - end - - refute lockfile_set, 'fount a LockSet' - - git_set = @set.sets.find do |set| - Gem::Resolver::GitSet === set - end - - assert git_set, 'could not find a GitSet' - - expected = { - 'a' => %w[git://example/a.git 1234abc], - } - - assert_equal expected, git_set.repositories - end - - def test_parse_PATH - _, _, directory = vendor_gem - - write_lockfile <<-LOCKFILE -PATH - remote: #{directory} - specs: - a (1) - b (2) - -DEPENDENCIES - a! - LOCKFILE - - @lockfile.parse - - assert_equal [dep('a', '= 1')], @set.dependencies - - lockfile_set = @set.sets.find do |set| - Gem::Resolver::LockSet === set - end - - refute lockfile_set, 'found a LockSet' - - vendor_set = @set.sets.find do |set| - Gem::Resolver::VendorSet === set - end - - assert vendor_set, 'could not find a VendorSet' - - assert_equal %w[a-1], vendor_set.specs.values.map { |s| s.full_name } - - spec = vendor_set.load_spec 'a', nil, nil, nil - - assert_equal [dep('b', '= 2')], spec.dependencies - end - - def test_parse_dependency - write_lockfile ' 1)' - - @lockfile.tokenize - - parsed = @lockfile.parse_dependency 'a', '=' - - assert_equal dep('a', '= 1'), parsed - - write_lockfile ')' - - @lockfile.tokenize - - parsed = @lockfile.parse_dependency 'a', '2' - - assert_equal dep('a', '= 2'), parsed - end - - def test_parse_gem_specs_dependency - write_lockfile <<-LOCKFILE -GEM - remote: #{@gem_repo} - specs: - a (2) - b (= 3) - c (~> 4) - d - e (~> 5.0, >= 5.0.1) - b (3-x86_64-linux) - -PLATFORMS - #{Gem::Platform::RUBY} - -DEPENDENCIES - a - LOCKFILE - - @lockfile.parse - - assert_equal [dep('a')], @set.dependencies - - assert_equal [Gem::Platform::RUBY], @lockfile.platforms - - lockfile_set = @set.sets.find do |set| - Gem::Resolver::LockSet === set - end - - assert lockfile_set, 'could not find a LockSet' - - assert_equal %w[a-2 b-3], lockfile_set.specs.map { |tuple| tuple.full_name } - - expected = [ - Gem::Platform::RUBY, - Gem::Platform.new('x86_64-linux'), - ] - - assert_equal expected, lockfile_set.specs.map { |tuple| tuple.platform } - - spec = lockfile_set.specs.first - - expected = [ - dep('b', '= 3'), - dep('c', '~> 4'), - dep('d'), - dep('e', '~> 5.0', '>= 5.0.1'), - ] - - assert_equal expected, spec.dependencies - end - - def test_parse_missing - @lockfile.parse - - lockfile_set = @set.sets.find do |set| - Gem::Resolver::LockSet === set - end - - refute lockfile_set - end - - def test_peek - @lockfile.instance_variable_set :@tokens, [:token] - - assert_equal :token, @lockfile.peek - - assert_equal :token, @lockfile.get - - assert_equal [:EOF], @lockfile.peek - end - def test_relative_path_from path = @lockfile.relative_path_from '/foo', '/foo/bar' @@ -681,276 +153,6 @@ DEPENDENCIES assert_equal '.', path end - def test_skip - tokens = [[:token]] - - @lockfile.instance_variable_set :@tokens, tokens - - @lockfile.skip :token - - assert_empty tokens - end - - def test_token_pos - assert_equal [5, 0], @lockfile.token_pos(5) - - @lockfile.instance_variable_set :@line_pos, 2 - @lockfile.instance_variable_set :@line, 1 - - assert_equal [3, 1], @lockfile.token_pos(5) - end - - def test_tokenize - write_lockfile <<-LOCKFILE -GEM - remote: #{@gem_repo} - specs: - a (2) - b (= 2) - c (!= 3) - d (> 4) - e (< 5) - f (>= 6) - g (<= 7) - h (~> 8) - -PLATFORMS - #{Gem::Platform::RUBY} - -DEPENDENCIES - a - LOCKFILE - - expected = [ - [:section, 'GEM', 0, 0], - [:newline, nil, 3, 0], - - [:entry, 'remote', 2, 1], - [:text, @gem_repo, 10, 1], - [:newline, nil, 34, 1], - - [:entry, 'specs', 2, 2], - [:newline, nil, 8, 2], - - [:text, 'a', 4, 3], - [:l_paren, nil, 6, 3], - [:text, '2', 7, 3], - [:r_paren, nil, 8, 3], - [:newline, nil, 9, 3], - - [:text, 'b', 6, 4], - [:l_paren, nil, 8, 4], - [:requirement, '=', 9, 4], - [:text, '2', 11, 4], - [:r_paren, nil, 12, 4], - [:newline, nil, 13, 4], - - [:text, 'c', 6, 5], - [:l_paren, nil, 8, 5], - [:requirement, '!=', 9, 5], - [:text, '3', 12, 5], - [:r_paren, nil, 13, 5], - [:newline, nil, 14, 5], - - [:text, 'd', 6, 6], - [:l_paren, nil, 8, 6], - [:requirement, '>', 9, 6], - [:text, '4', 11, 6], - [:r_paren, nil, 12, 6], - [:newline, nil, 13, 6], - - [:text, 'e', 6, 7], - [:l_paren, nil, 8, 7], - [:requirement, '<', 9, 7], - [:text, '5', 11, 7], - [:r_paren, nil, 12, 7], - [:newline, nil, 13, 7], - - [:text, 'f', 6, 8], - [:l_paren, nil, 8, 8], - [:requirement, '>=', 9, 8], - [:text, '6', 12, 8], - [:r_paren, nil, 13, 8], - [:newline, nil, 14, 8], - - [:text, 'g', 6, 9], - [:l_paren, nil, 8, 9], - [:requirement, '<=', 9, 9], - [:text, '7', 12, 9], - [:r_paren, nil, 13, 9], - [:newline, nil, 14, 9], - - [:text, 'h', 6, 10], - [:l_paren, nil, 8, 10], - [:requirement, '~>', 9, 10], - [:text, '8', 12, 10], - [:r_paren, nil, 13, 10], - [:newline, nil, 14, 10], - - [:newline, nil, 0, 11], - - [:section, 'PLATFORMS', 0, 12], - [:newline, nil, 9, 12], - - [:text, Gem::Platform::RUBY, 2, 13], - [:newline, nil, 6, 13], - - [:newline, nil, 0, 14], - - [:section, 'DEPENDENCIES', 0, 15], - [:newline, nil, 12, 15], - - [:text, 'a', 2, 16], - [:newline, nil, 3, 16], - ] - - assert_equal expected, @lockfile.tokenize - end - - def test_tokenize_capitals - write_lockfile <<-LOCKFILE -GEM - remote: #{@gem_repo} - specs: - Ab (2) - -PLATFORMS - #{Gem::Platform::RUBY} - -DEPENDENCIES - Ab - LOCKFILE - - expected = [ - [:section, 'GEM', 0, 0], - [:newline, nil, 3, 0], - [:entry, 'remote', 2, 1], - [:text, @gem_repo, 10, 1], - [:newline, nil, 34, 1], - [:entry, 'specs', 2, 2], - [:newline, nil, 8, 2], - [:text, 'Ab', 4, 3], - [:l_paren, nil, 7, 3], - [:text, '2', 8, 3], - [:r_paren, nil, 9, 3], - [:newline, nil, 10, 3], - [:newline, nil, 0, 4], - [:section, 'PLATFORMS', 0, 5], - [:newline, nil, 9, 5], - [:text, Gem::Platform::RUBY, 2, 6], - [:newline, nil, 6, 6], - [:newline, nil, 0, 7], - [:section, 'DEPENDENCIES', 0, 8], - [:newline, nil, 12, 8], - [:text, 'Ab', 2, 9], - [:newline, nil, 4, 9], - ] - - assert_equal expected, @lockfile.tokenize - end - - def test_tokenize_conflict_markers - write_lockfile '<<<<<<<' - - e = assert_raises Gem::RequestSet::Lockfile::ParseError do - @lockfile.tokenize - end - - assert_equal "your #{@lock_file} contains merge conflict markers (at line 0 column 0)", - e.message - - write_lockfile '|||||||' - - e = assert_raises Gem::RequestSet::Lockfile::ParseError do - @lockfile.tokenize - end - - assert_equal "your #{@lock_file} contains merge conflict markers (at line 0 column 0)", - e.message - - write_lockfile '=======' - - e = assert_raises Gem::RequestSet::Lockfile::ParseError do - @lockfile.tokenize - end - - assert_equal "your #{@lock_file} contains merge conflict markers (at line 0 column 0)", - e.message - - write_lockfile '>>>>>>>' - - e = assert_raises Gem::RequestSet::Lockfile::ParseError do - @lockfile.tokenize - end - - assert_equal "your #{@lock_file} contains merge conflict markers (at line 0 column 0)", - e.message - end - - def test_tokenize_git - write_lockfile <<-LOCKFILE -DEPENDENCIES - a! - LOCKFILE - - expected = [ - [:section, 'DEPENDENCIES', 0, 0], - [:newline, nil, 12, 0], - - [:text, 'a', 2, 1], - [:bang, nil, 3, 1], - [:newline, nil, 4, 1], - ] - - assert_equal expected, @lockfile.tokenize - end - - def test_tokenize_missing - tokens = @lockfile.tokenize - - assert_empty tokens - end - - def test_tokenize_multiple - write_lockfile <<-LOCKFILE -GEM - remote: #{@gem_repo} - specs: - a (2) - b (~> 3.0, >= 3.0.1) - LOCKFILE - - expected = [ - [:section, 'GEM', 0, 0], - [:newline, nil, 3, 0], - - [:entry, 'remote', 2, 1], - [:text, @gem_repo, 10, 1], - [:newline, nil, 34, 1], - - [:entry, 'specs', 2, 2], - [:newline, nil, 8, 2], - - [:text, 'a', 4, 3], - [:l_paren, nil, 6, 3], - [:text, '2', 7, 3], - [:r_paren, nil, 8, 3], - [:newline, nil, 9, 3], - - [:text, 'b', 6, 4], - [:l_paren, nil, 8, 4], - [:requirement, '~>', 9, 4], - [:text, '3.0', 12, 4], - [:comma, nil, 15, 4], - [:requirement, '>=', 17, 4], - [:text, '3.0.1', 20, 4], - [:r_paren, nil, 25, 4], - [:newline, nil, 26, 4], - ] - - assert_equal expected, @lockfile.tokenize - end - def test_to_s_gem spec_fetcher do |fetcher| fetcher.spec 'a', 2 @@ -1236,14 +438,6 @@ DEPENDENCIES assert_equal expected, @lockfile.to_s end - def test_unget - @lockfile.instance_variable_set :@current_token, :token - - @lockfile.unget - - assert_equal :token, @lockfile.get - end - def test_write @lockfile.write @@ -1271,6 +465,4 @@ DEPENDENCIES assert_equal 'hello', File.read(gem_deps_lock_file) end - end - -- cgit v1.2.3