From afb5b6fce318d2af634ebd0541a58b45acedd44a Mon Sep 17 00:00:00 2001 From: hsbt Date: Tue, 8 Sep 2015 22:46:43 +0000 Subject: * lib/rubygems: Update to RubyGems HEAD(fe61e4c112). this version contains new feature that warn invalid SPDX license identifiers. https://github.com/rubygems/rubygems/pull/1249 and #1032, #1023, #1332, #1328, #1306, #1321, #1324 * test/rubygems: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51801 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/rubygems/test_config.rb | 10 ++++++ test/rubygems/test_gem.rb | 4 +-- test/rubygems/test_gem_remote_fetcher.rb | 26 ++++++++++++++ .../test_gem_request_set_lockfile_tokenizer.rb | 2 +- test/rubygems/test_gem_specification.rb | 41 +++++++++++++++++++--- 5 files changed, 76 insertions(+), 7 deletions(-) (limited to 'test') diff --git a/test/rubygems/test_config.rb b/test/rubygems/test_config.rb index 7829e90dcf..7b89d2ddc4 100644 --- a/test/rubygems/test_config.rb +++ b/test/rubygems/test_config.rb @@ -10,5 +10,15 @@ class TestConfig < Gem::TestCase assert_equal "#{spec.full_gem_path}/data/a", Gem.datadir('a') end + def test_good_rake_path_is_escaped + path = Gem::TestCase.class_eval('@@good_rake') + assert_match(/ruby "[^"]*good_rake.rb"/, path) + end + + def test_bad_rake_path_is_escaped + path = Gem::TestCase.class_eval('@@bad_rake') + assert_match(/ruby "[^"]*bad_rake.rb"/, path) + end + end diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb index 0c5ac51f29..1bcff8c2ff 100644 --- a/test/rubygems/test_gem.rb +++ b/test/rubygems/test_gem.rb @@ -1311,7 +1311,7 @@ class TestGem < Gem::TestCase ENV['GEM_PATH'] = path ENV['RUBYGEMS_GEMDEPS'] = "-" - out = `#{Gem.ruby.dup.untaint} -I #{LIB_PATH.untaint} -rubygems -e "p Gem.loaded_specs.values.map(&:full_name).sort"` + out = `#{Gem.ruby.dup.untaint} -I "#{LIB_PATH.untaint}" -rubygems -e "p Gem.loaded_specs.values.map(&:full_name).sort"` assert_equal '["a-1", "b-1", "c-1"]', out.strip end @@ -1343,7 +1343,7 @@ class TestGem < Gem::TestCase Dir.mkdir "sub1" out = Dir.chdir "sub1" do - `#{Gem.ruby.dup.untaint} -I #{LIB_PATH.untaint} -rubygems -e "p Gem.loaded_specs.values.map(&:full_name).sort"` + `#{Gem.ruby.dup.untaint} -I "#{LIB_PATH.untaint}" -rubygems -e "p Gem.loaded_specs.values.map(&:full_name).sort"` end Dir.rmdir "sub1" diff --git a/test/rubygems/test_gem_remote_fetcher.rb b/test/rubygems/test_gem_remote_fetcher.rb index 826b20d040..bb752d1ef7 100644 --- a/test/rubygems/test_gem_remote_fetcher.rb +++ b/test/rubygems/test_gem_remote_fetcher.rb @@ -252,6 +252,31 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== dns.verify end + def test_api_endpoint_timeout_warning + uri = URI.parse "http://gems.example.com/foo" + + dns = MiniTest::Mock.new + def dns.getresource arg, *rest + raise Resolv::ResolvError.new('timeout!') + end + + fetch = Gem::RemoteFetcher.new nil, dns + begin + old_verbose, Gem.configuration.verbose = Gem.configuration.verbose, 1 + endpoint = use_ui @ui do + fetch.api_endpoint(uri) + end + ensure + Gem.configuration.verbose = old_verbose + end + + assert_equal uri, endpoint + + assert_equal "Getting SRV record failed: timeout!\n", @ui.output + + dns.verify + end + def test_cache_update_path uri = URI 'http://example/file' path = File.join @tempdir, 'file' @@ -1010,3 +1035,4 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== end end + diff --git a/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb b/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb index bf56f5019b..b11858361e 100644 --- a/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +++ b/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb @@ -19,7 +19,7 @@ class TestGemRequestSetLockfileTokenizer < Gem::TestCase assert_equal :newline, tokenizer.next_token.first - assert_equal [:EOF], tokenizer.peek + assert_equal :EOF, tokenizer.peek.first end def test_skip diff --git a/test/rubygems/test_gem_specification.rb b/test/rubygems/test_gem_specification.rb index 29c8b7c178..0ada8db490 100644 --- a/test/rubygems/test_gem_specification.rb +++ b/test/rubygems/test_gem_specification.rb @@ -1178,7 +1178,7 @@ dependencies: [] s.summary = 'summary' s.description = 'description' s.authors = 'author a', 'author b' - s.licenses = 'BSD' + s.licenses = 'BSD-2-Clause' s.files = 'lib/file.rb' s.test_files = 'test/file.rb' s.rdoc_options = '--foo' @@ -2608,12 +2608,14 @@ end end end - def test_validate_dependencies_open_ended + def test_validate_dependencies_duplicates util_setup_validate Dir.chdir @tempdir do @a1.add_runtime_dependency 'b', '~> 1.2' @a1.add_runtime_dependency 'b', '>= 1.2.3' + @a1.add_development_dependency 'c', '~> 1.2' + @a1.add_development_dependency 'c', '>= 1.2.3' use_ui @ui do e = assert_raises Gem::InvalidSpecificationException do @@ -2623,6 +2625,8 @@ end expected = <<-EXPECTED duplicate dependency on b (>= 1.2.3), (~> 1.2) use: add_runtime_dependency 'b', '>= 1.2.3', '~> 1.2' +duplicate dependency on c (>= 1.2.3, development), (~> 1.2) use: + add_development_dependency 'c', '>= 1.2.3', '~> 1.2' EXPECTED assert_equal expected, e.message @@ -2634,6 +2638,21 @@ duplicate dependency on b (>= 1.2.3), (~> 1.2) use: end end + def test_validate_dependencies_allowed_duplicates + util_setup_validate + + Dir.chdir @tempdir do + @a1.add_runtime_dependency 'b', '~> 1.2' + @a1.add_development_dependency 'b', '= 1.2.3' + + use_ui @ui do + @a1.validate + end + + assert_equal '', @ui.error, 'warning' + end + end + def test_validate_description util_setup_validate @@ -2832,8 +2851,22 @@ duplicate dependency on b (>= 1.2.3), (~> 1.2) use: end assert_match <<-warning, @ui.error -WARNING: licenses is empty, but is recommended. Use a license abbreviation from: -http://opensource.org/licenses/alphabetical +WARNING: licenses is empty, but is recommended. Use a license identifier from +http://spdx.org/licenses or 'Nonstandard' for a nonstandard license. + warning + end + + def test_validate_license_values + util_setup_validate + + use_ui @ui do + @a1.licenses = ['BSD'] + @a1.validate + end + + assert_match <<-warning, @ui.error +WARNING: license value 'BSD' is invalid. Use a license identifier from +http://spdx.org/licenses or 'Nonstandard' for a nonstandard license. warning end -- cgit v1.2.3