rubygems-update 2.7.11 → 3.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +67 -0
- data/.travis.yml +24 -18
- data/CODE_OF_CONDUCT.md +10 -8
- data/CONTRIBUTING.md +148 -0
- data/History.txt +458 -8
- data/MAINTAINERS.txt +1 -0
- data/Manifest.txt +16 -9
- data/POLICIES.md +92 -0
- data/README.md +53 -26
- data/Rakefile +77 -211
- data/{UPGRADING.rdoc → UPGRADING.md} +31 -32
- data/appveyor.yml +20 -45
- data/bin/gem +1 -2
- data/bin/update_rubygems +2 -3
- data/bundler/CHANGELOG.md +65 -0
- data/bundler/bundler.gemspec +7 -1
- data/bundler/lib/bundler/build_metadata.rb +1 -1
- data/bundler/lib/bundler/cli/add.rb +15 -5
- data/bundler/lib/bundler/cli/binstubs.rb +8 -2
- data/bundler/lib/bundler/cli/doctor.rb +47 -1
- data/bundler/lib/bundler/cli/install.rb +8 -5
- data/bundler/lib/bundler/cli/list.rb +41 -5
- data/bundler/lib/bundler/cli/outdated.rb +7 -1
- data/bundler/lib/bundler/cli/pristine.rb +4 -0
- data/bundler/lib/bundler/cli/remove.rb +18 -0
- data/bundler/lib/bundler/cli.rb +63 -21
- data/bundler/lib/bundler/definition.rb +15 -16
- data/bundler/lib/bundler/dependency.rb +2 -2
- data/bundler/lib/bundler/dsl.rb +19 -3
- data/bundler/lib/bundler/feature_flag.rb +7 -0
- data/bundler/lib/bundler/gem_version_promoter.rb +4 -2
- data/bundler/lib/bundler/injector.rb +168 -9
- data/bundler/lib/bundler/installer/parallel_installer.rb +5 -0
- data/bundler/lib/bundler/installer.rb +29 -6
- data/bundler/lib/bundler/plugin/events.rb +61 -0
- data/bundler/lib/bundler/plugin.rb +10 -3
- data/bundler/lib/bundler/resolver.rb +2 -2
- data/bundler/lib/bundler/rubygems_gem_installer.rb +7 -0
- data/bundler/lib/bundler/runtime.rb +8 -2
- data/bundler/lib/bundler/settings/validator.rb +23 -0
- data/bundler/lib/bundler/settings.rb +24 -3
- data/bundler/lib/bundler/shared_helpers.rb +19 -3
- data/bundler/lib/bundler/source/metadata.rb +2 -3
- data/bundler/lib/bundler/source.rb +9 -9
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +1 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler.rb +26 -8
- data/bundler/man/bundle-add.ronn +13 -2
- data/bundler/man/bundle-config.ronn +21 -0
- data/bundler/man/bundle-install.ronn +1 -1
- data/bundler/man/bundle-list.ronn +19 -1
- data/bundler/man/bundle-outdated.ronn +4 -0
- data/bundler/man/bundle-remove.ronn +23 -0
- data/bundler/man/bundle-update.ronn +1 -1
- data/bundler/man/bundle.ronn +3 -0
- data/lib/rubygems/available_set.rb +1 -1
- data/lib/rubygems/basic_specification.rb +12 -12
- data/lib/rubygems/bundler_version_finder.rb +3 -3
- data/lib/rubygems/command.rb +22 -15
- data/lib/rubygems/command_manager.rb +22 -5
- data/lib/rubygems/commands/build_command.rb +41 -7
- data/lib/rubygems/commands/cert_command.rb +45 -24
- data/lib/rubygems/commands/check_command.rb +1 -1
- data/lib/rubygems/commands/cleanup_command.rb +14 -7
- data/lib/rubygems/commands/contents_command.rb +14 -15
- data/lib/rubygems/commands/dependency_command.rb +17 -17
- data/lib/rubygems/commands/environment_command.rb +20 -1
- data/lib/rubygems/commands/fetch_command.rb +2 -3
- data/lib/rubygems/commands/generate_index_command.rb +2 -3
- data/lib/rubygems/commands/help_command.rb +12 -13
- data/lib/rubygems/commands/info_command.rb +33 -0
- data/lib/rubygems/commands/install_command.rb +21 -17
- data/lib/rubygems/commands/list_command.rb +0 -1
- data/lib/rubygems/commands/lock_command.rb +3 -4
- data/lib/rubygems/commands/open_command.rb +16 -10
- data/lib/rubygems/commands/owner_command.rb +21 -7
- data/lib/rubygems/commands/pristine_command.rb +23 -16
- data/lib/rubygems/commands/push_command.rb +19 -8
- data/lib/rubygems/commands/query_command.rb +24 -24
- data/lib/rubygems/commands/rdoc_command.rb +3 -4
- data/lib/rubygems/commands/search_command.rb +0 -1
- data/lib/rubygems/commands/server_command.rb +1 -2
- data/lib/rubygems/commands/setup_command.rb +86 -48
- data/lib/rubygems/commands/signin_command.rb +2 -1
- data/lib/rubygems/commands/signout_command.rb +2 -2
- data/lib/rubygems/commands/sources_command.rb +11 -12
- data/lib/rubygems/commands/specification_command.rb +7 -7
- data/lib/rubygems/commands/uninstall_command.rb +50 -18
- data/lib/rubygems/commands/unpack_command.rb +16 -7
- data/lib/rubygems/commands/update_command.rb +28 -23
- data/lib/rubygems/commands/which_command.rb +5 -8
- data/lib/rubygems/commands/yank_command.rb +1 -2
- data/lib/rubygems/compatibility.rb +1 -21
- data/lib/rubygems/config_file.rb +36 -36
- data/lib/rubygems/core_ext/kernel_require.rb +6 -6
- data/lib/rubygems/core_ext/kernel_warn.rb +45 -0
- data/lib/rubygems/defaults.rb +31 -19
- data/lib/rubygems/dependency.rb +15 -15
- data/lib/rubygems/dependency_installer.rb +30 -33
- data/lib/rubygems/dependency_list.rb +9 -10
- data/lib/rubygems/deprecate.rb +2 -3
- data/lib/rubygems/doctor.rb +5 -6
- data/lib/rubygems/errors.rb +3 -3
- data/lib/rubygems/exceptions.rb +11 -8
- data/lib/rubygems/ext/build_error.rb +0 -1
- data/lib/rubygems/ext/builder.rb +50 -23
- data/lib/rubygems/ext/cmake_builder.rb +2 -2
- data/lib/rubygems/ext/configure_builder.rb +2 -3
- data/lib/rubygems/ext/ext_conf_builder.rb +8 -7
- data/lib/rubygems/ext/rake_builder.rb +16 -18
- data/lib/rubygems/ext.rb +0 -1
- data/lib/rubygems/gem_runner.rb +2 -2
- data/lib/rubygems/gemcutter_utilities.rb +46 -12
- data/lib/rubygems/indexer.rb +19 -12
- data/lib/rubygems/install_default_message.rb +0 -1
- data/lib/rubygems/install_message.rb +0 -1
- data/lib/rubygems/install_update_options.rb +3 -29
- data/lib/rubygems/installer.rb +97 -55
- data/lib/rubygems/installer_test_case.rb +2 -16
- data/lib/rubygems/local_remote_options.rb +5 -4
- data/lib/rubygems/mock_gem_ui.rb +3 -4
- data/lib/rubygems/name_tuple.rb +4 -4
- data/lib/rubygems/package/digest_io.rb +3 -4
- data/lib/rubygems/package/file_source.rb +3 -4
- data/lib/rubygems/package/io_source.rb +1 -2
- data/lib/rubygems/package/old.rb +8 -16
- data/lib/rubygems/package/source.rb +0 -1
- data/lib/rubygems/package/tar_header.rb +13 -4
- data/lib/rubygems/package/tar_reader/entry.rb +20 -4
- data/lib/rubygems/package/tar_reader.rb +2 -4
- data/lib/rubygems/package/tar_test_case.rb +2 -8
- data/lib/rubygems/package/tar_writer.rb +13 -15
- data/lib/rubygems/package.rb +90 -63
- data/lib/rubygems/package_task.rb +0 -1
- data/lib/rubygems/path_support.rb +16 -6
- data/lib/rubygems/platform.rb +4 -5
- data/lib/rubygems/psych_tree.rb +1 -1
- data/lib/rubygems/rdoc.rb +2 -313
- data/lib/rubygems/remote_fetcher.rb +29 -82
- data/lib/rubygems/request/connection_pools.rb +24 -13
- data/lib/rubygems/request/http_pool.rb +3 -4
- data/lib/rubygems/request/https_pool.rb +1 -3
- data/lib/rubygems/request.rb +17 -16
- data/lib/rubygems/request_set/gem_dependency_api.rb +46 -49
- data/lib/rubygems/request_set/lockfile/parser.rb +18 -29
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +9 -9
- data/lib/rubygems/request_set/lockfile.rb +12 -12
- data/lib/rubygems/request_set.rb +52 -25
- data/lib/rubygems/requirement.rb +32 -21
- data/lib/rubygems/resolver/activation_request.rb +6 -6
- data/lib/rubygems/resolver/api_set.rb +5 -6
- data/lib/rubygems/resolver/api_specification.rb +2 -3
- data/lib/rubygems/resolver/best_set.rb +5 -6
- data/lib/rubygems/resolver/composed_set.rb +5 -6
- data/lib/rubygems/resolver/conflict.rb +5 -5
- data/lib/rubygems/resolver/current_set.rb +1 -2
- data/lib/rubygems/resolver/dependency_request.rb +4 -4
- data/lib/rubygems/resolver/git_set.rb +5 -6
- data/lib/rubygems/resolver/git_specification.rb +4 -5
- data/lib/rubygems/resolver/index_set.rb +5 -6
- data/lib/rubygems/resolver/index_specification.rb +3 -4
- data/lib/rubygems/resolver/installed_specification.rb +3 -4
- data/lib/rubygems/resolver/installer_set.rb +12 -12
- data/lib/rubygems/resolver/local_specification.rb +1 -2
- data/lib/rubygems/resolver/lock_set.rb +5 -6
- data/lib/rubygems/resolver/lock_specification.rb +7 -8
- data/lib/rubygems/resolver/requirement_list.rb +1 -1
- data/lib/rubygems/resolver/set.rb +2 -2
- data/lib/rubygems/resolver/source_set.rb +4 -5
- data/lib/rubygems/resolver/spec_specification.rb +1 -2
- data/lib/rubygems/resolver/specification.rb +10 -7
- data/lib/rubygems/resolver/stats.rb +1 -1
- data/lib/rubygems/resolver/vendor_set.rb +4 -5
- data/lib/rubygems/resolver/vendor_specification.rb +2 -3
- data/lib/rubygems/resolver.rb +14 -16
- data/lib/rubygems/s3_uri_signer.rb +183 -0
- data/lib/rubygems/safe_yaml.rb +18 -10
- data/lib/rubygems/security/policies.rb +1 -2
- data/lib/rubygems/security/policy.rb +25 -25
- data/lib/rubygems/security/signer.rb +72 -24
- data/lib/rubygems/security/trust_dir.rb +10 -10
- data/lib/rubygems/security.rb +21 -22
- data/lib/rubygems/security_option.rb +0 -1
- data/lib/rubygems/server.rb +21 -21
- data/lib/rubygems/source/git.rb +9 -10
- data/lib/rubygems/source/installed.rb +3 -4
- data/lib/rubygems/source/local.rb +7 -7
- data/lib/rubygems/source/lock.rb +4 -4
- data/lib/rubygems/source/specific_file.rb +5 -5
- data/lib/rubygems/source/vendor.rb +2 -3
- data/lib/rubygems/source.rb +16 -25
- data/lib/rubygems/source_list.rb +2 -2
- data/lib/rubygems/source_local.rb +0 -1
- data/lib/rubygems/spec_fetcher.rb +5 -6
- data/lib/rubygems/specification.rb +219 -558
- data/lib/rubygems/specification_policy.rb +407 -0
- data/lib/rubygems/stub_specification.rb +12 -17
- data/lib/rubygems/test_case.rb +161 -75
- data/lib/rubygems/test_utilities.rb +20 -35
- data/lib/rubygems/text.rb +6 -6
- data/lib/rubygems/uninstaller.rb +38 -27
- data/lib/rubygems/uri_formatter.rb +1 -2
- data/lib/rubygems/user_interaction.rb +37 -89
- data/lib/rubygems/util/licenses.rb +27 -1
- data/lib/rubygems/util/list.rb +1 -1
- data/lib/rubygems/util.rb +32 -14
- data/lib/rubygems/validator.rb +4 -5
- data/lib/rubygems/version.rb +15 -15
- data/lib/rubygems/version_option.rb +2 -3
- data/lib/rubygems.rb +71 -102
- data/rubygems-update.gemspec +43 -0
- data/setup.rb +2 -8
- data/test/rubygems/ca_cert.pem +74 -65
- data/test/rubygems/client.pem +103 -45
- data/test/rubygems/rubygems_plugin.rb +0 -1
- data/test/rubygems/simple_gem.rb +1 -1
- data/test/rubygems/ssl_cert.pem +78 -17
- data/test/rubygems/ssl_key.pem +25 -13
- data/test/rubygems/test_bundled_ca.rb +1 -1
- data/test/rubygems/test_config.rb +7 -2
- data/test/rubygems/test_gem.rb +205 -132
- data/test/rubygems/test_gem_bundler_version_finder.rb +4 -0
- data/test/rubygems/test_gem_command.rb +0 -1
- data/test/rubygems/test_gem_command_manager.rb +18 -3
- data/test/rubygems/test_gem_commands_build_command.rb +220 -15
- data/test/rubygems/test_gem_commands_cert_command.rb +69 -8
- data/test/rubygems/test_gem_commands_check_command.rb +1 -1
- data/test/rubygems/test_gem_commands_cleanup_command.rb +27 -1
- data/test/rubygems/test_gem_commands_contents_command.rb +1 -2
- data/test/rubygems/test_gem_commands_dependency_command.rb +33 -34
- data/test/rubygems/test_gem_commands_environment_command.rb +1 -0
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -1
- data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -1
- data/test/rubygems/test_gem_commands_help_command.rb +7 -4
- data/test/rubygems/test_gem_commands_info_command.rb +44 -0
- data/test/rubygems/test_gem_commands_install_command.rb +79 -12
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -1
- data/test/rubygems/test_gem_commands_open_command.rb +29 -0
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -1
- data/test/rubygems/test_gem_commands_owner_command.rb +93 -57
- data/test/rubygems/test_gem_commands_pristine_command.rb +65 -30
- data/test/rubygems/test_gem_commands_push_command.rb +54 -0
- data/test/rubygems/test_gem_commands_query_command.rb +102 -100
- data/test/rubygems/test_gem_commands_search_command.rb +0 -1
- data/test/rubygems/test_gem_commands_server_command.rb +0 -1
- data/test/rubygems/test_gem_commands_setup_command.rb +50 -15
- data/test/rubygems/test_gem_commands_signin_command.rb +1 -1
- data/test/rubygems/test_gem_commands_sources_command.rb +0 -1
- data/test/rubygems/test_gem_commands_specification_command.rb +2 -3
- data/test/rubygems/test_gem_commands_stale_command.rb +3 -2
- data/test/rubygems/test_gem_commands_uninstall_command.rb +161 -8
- data/test/rubygems/test_gem_commands_unpack_command.rb +17 -1
- data/test/rubygems/test_gem_commands_update_command.rb +19 -2
- data/test/rubygems/test_gem_commands_which_command.rb +0 -1
- data/test/rubygems/test_gem_commands_yank_command.rb +0 -1
- data/test/rubygems/test_gem_config_file.rb +4 -2
- data/test/rubygems/test_gem_dependency.rb +0 -1
- data/test/rubygems/test_gem_dependency_installer.rb +8 -5
- data/test/rubygems/test_gem_dependency_list.rb +6 -7
- data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -1
- data/test/rubygems/test_gem_doctor.rb +1 -2
- data/test/rubygems/test_gem_ext_builder.rb +10 -23
- data/test/rubygems/test_gem_ext_cmake_builder.rb +5 -4
- data/test/rubygems/test_gem_ext_configure_builder.rb +3 -3
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +8 -9
- data/test/rubygems/test_gem_ext_rake_builder.rb +20 -5
- data/test/rubygems/test_gem_gem_runner.rb +0 -1
- data/test/rubygems/test_gem_gemcutter_utilities.rb +32 -6
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -1
- data/test/rubygems/test_gem_indexer.rb +16 -10
- data/test/rubygems/test_gem_install_update_options.rb +1 -20
- data/test/rubygems/test_gem_installer.rb +154 -119
- data/test/rubygems/test_gem_local_remote_options.rb +3 -3
- data/test/rubygems/test_gem_name_tuple.rb +0 -1
- data/test/rubygems/test_gem_package.rb +77 -31
- data/test/rubygems/test_gem_package_old.rb +0 -1
- data/test/rubygems/test_gem_package_tar_header.rb +42 -2
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -1
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +11 -0
- data/test/rubygems/test_gem_package_tar_writer.rb +43 -7
- data/test/rubygems/test_gem_package_task.rb +2 -2
- data/test/rubygems/test_gem_path_support.rb +28 -11
- data/test/rubygems/test_gem_platform.rb +4 -5
- data/test/rubygems/test_gem_rdoc.rb +1 -136
- data/test/rubygems/test_gem_remote_fetcher.rb +241 -141
- data/test/rubygems/test_gem_request.rb +9 -9
- data/test/rubygems/test_gem_request_connection_pools.rb +24 -3
- data/test/rubygems/test_gem_request_set.rb +5 -5
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +82 -64
- data/test/rubygems/test_gem_request_set_lockfile.rb +1 -2
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +4 -9
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +1 -1
- data/test/rubygems/test_gem_requirement.rb +24 -4
- data/test/rubygems/test_gem_resolver.rb +13 -17
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -1
- data/test/rubygems/test_gem_resolver_api_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_api_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_best_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_conflict.rb +0 -1
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -1
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_git_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_index_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_installer_set.rb +2 -3
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_lock_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -1
- data/test/rubygems/test_gem_resolver_specification.rb +1 -2
- data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -1
- data/test/rubygems/test_gem_security.rb +1 -3
- data/test/rubygems/test_gem_security_policy.rb +5 -6
- data/test/rubygems/test_gem_security_signer.rb +4 -3
- data/test/rubygems/test_gem_security_trust_dir.rb +1 -2
- data/test/rubygems/test_gem_server.rb +4 -4
- data/test/rubygems/test_gem_source.rb +0 -13
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -1
- data/test/rubygems/test_gem_source_git.rb +0 -1
- data/test/rubygems/test_gem_source_installed.rb +0 -1
- data/test/rubygems/test_gem_source_lock.rb +0 -1
- data/test/rubygems/test_gem_source_vendor.rb +0 -1
- data/test/rubygems/test_gem_spec_fetcher.rb +0 -1
- data/test/rubygems/test_gem_specification.rb +366 -198
- data/test/rubygems/test_gem_stream_ui.rb +15 -32
- data/test/rubygems/test_gem_stub_specification.rb +0 -2
- data/test/rubygems/test_gem_text.rb +4 -0
- data/test/rubygems/test_gem_uninstaller.rb +42 -3
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -1
- data/test/rubygems/test_gem_uri_formatter.rb +0 -1
- data/test/rubygems/test_gem_util.rb +31 -11
- data/test/rubygems/test_gem_validator.rb +0 -1
- data/test/rubygems/test_gem_version.rb +11 -11
- data/test/rubygems/test_gem_version_option.rb +0 -1
- data/test/rubygems/test_remote_fetch_error.rb +0 -1
- data/test/rubygems/test_require.rb +67 -52
- data/util/CL2notes +1 -2
- data/util/ci +20 -12
- data/util/cops/deprecations.rb +52 -0
- data/util/create_certs.rb +6 -7
- data/util/create_certs.sh +27 -0
- data/util/create_encrypted_key.rb +4 -5
- data/util/patch_with_prs.rb +1 -1
- data/util/rubocop +8 -0
- data/util/update_bundled_ca_certificates.rb +12 -13
- data/util/update_changelog.rb +1 -1
- metadata +61 -51
- data/.autotest +0 -71
- data/.document +0 -5
- data/CONTRIBUTING.rdoc +0 -130
- data/CVE-2013-4287.txt +0 -35
- data/CVE-2013-4363.txt +0 -45
- data/CVE-2015-3900.txt +0 -40
- data/POLICIES.rdoc +0 -74
- data/test/rubygems/fix_openssl_warnings.rb +0 -13
@@ -50,15 +50,9 @@ install:
|
|
50
50
|
|
51
51
|
results = results.join "\n"
|
52
52
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
assert_match %r%"DESTDIR=#{ENV['DESTDIR']}" install$%, results
|
57
|
-
else
|
58
|
-
refute_match %r%"DESTDIR=#{ENV['DESTDIR']}" clean$%, results
|
59
|
-
refute_match %r%"DESTDIR=#{ENV['DESTDIR']}"$%, results
|
60
|
-
refute_match %r%"DESTDIR=#{ENV['DESTDIR']}" install$%, results
|
61
|
-
end
|
53
|
+
assert_match %r%"DESTDIR=#{ENV['DESTDIR']}" clean$%, results
|
54
|
+
assert_match %r%"DESTDIR=#{ENV['DESTDIR']}"$%, results
|
55
|
+
assert_match %r%"DESTDIR=#{ENV['DESTDIR']}" install$%, results
|
62
56
|
|
63
57
|
if /nmake/ !~ results
|
64
58
|
assert_match %r%^clean: destination$%, results
|
@@ -87,15 +81,9 @@ install:
|
|
87
81
|
|
88
82
|
results = results.join "\n"
|
89
83
|
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
assert_match %r%"DESTDIR=#{ENV['DESTDIR']}" install$%, results
|
94
|
-
else
|
95
|
-
refute_match %r%"DESTDIR=#{ENV['DESTDIR']}" clean$%, results
|
96
|
-
refute_match %r%"DESTDIR=#{ENV['DESTDIR']}"$%, results
|
97
|
-
refute_match %r%"DESTDIR=#{ENV['DESTDIR']}" install$%, results
|
98
|
-
end
|
84
|
+
assert_match %r%"DESTDIR=#{ENV['DESTDIR']}" clean$%, results
|
85
|
+
assert_match %r%"DESTDIR=#{ENV['DESTDIR']}"$%, results
|
86
|
+
assert_match %r%"DESTDIR=#{ENV['DESTDIR']}" install$%, results
|
99
87
|
end
|
100
88
|
|
101
89
|
def test_build_extensions
|
@@ -134,11 +122,6 @@ install:
|
|
134
122
|
end
|
135
123
|
|
136
124
|
def test_build_extensions_with_gemhome_with_space
|
137
|
-
# Details: https://github.com/rubygems/rubygems/issues/977#issuecomment-171544940
|
138
|
-
if win_platform? && RUBY_VERSION <= '2.0'
|
139
|
-
skip 'gemhome with spaces does not work with Ruby 1.9.x on Windows'
|
140
|
-
end
|
141
|
-
|
142
125
|
new_gemhome = File.join @tempdir, 'gem home'
|
143
126
|
File.rename(@gemhome, new_gemhome)
|
144
127
|
@gemhome = new_gemhome
|
@@ -227,6 +210,8 @@ install:
|
|
227
210
|
end
|
228
211
|
|
229
212
|
def test_build_extensions_extconf_bad
|
213
|
+
cwd = Dir.pwd
|
214
|
+
|
230
215
|
@spec.extensions << 'extconf.rb'
|
231
216
|
|
232
217
|
FileUtils.mkdir_p @spec.gem_dir
|
@@ -257,6 +242,8 @@ install:
|
|
257
242
|
|
258
243
|
assert_match %r%#{Regexp.escape Gem.ruby}: No such file%,
|
259
244
|
File.read(gem_make_out)
|
245
|
+
|
246
|
+
assert_equal cwd, Dir.pwd
|
260
247
|
end
|
261
248
|
|
262
249
|
def test_build_extensions_unsupported
|
@@ -10,7 +10,7 @@ class TestGemExtCmakeBuilder < Gem::TestCase
|
|
10
10
|
# Details: https://github.com/rubygems/rubygems/issues/1270#issuecomment-177368340
|
11
11
|
skip "CmakeBuilder doesn't work on Windows." if Gem.win_platform?
|
12
12
|
|
13
|
-
|
13
|
+
system('cmake', out: IO::NULL, err: [:child, :out])
|
14
14
|
|
15
15
|
skip 'cmake not present' unless $?.success?
|
16
16
|
|
@@ -25,6 +25,7 @@ class TestGemExtCmakeBuilder < Gem::TestCase
|
|
25
25
|
File.open File.join(@ext, 'CMakeLists.txt'), 'w' do |cmakelists|
|
26
26
|
cmakelists.write <<-eo_cmake
|
27
27
|
cmake_minimum_required(VERSION 2.6)
|
28
|
+
project(self_build NONE)
|
28
29
|
install (FILES test.txt DESTINATION bin)
|
29
30
|
eo_cmake
|
30
31
|
end
|
@@ -34,7 +35,7 @@ install (FILES test.txt DESTINATION bin)
|
|
34
35
|
output = []
|
35
36
|
|
36
37
|
Dir.chdir @ext do
|
37
|
-
Gem::Ext::CmakeBuilder.build nil,
|
38
|
+
Gem::Ext::CmakeBuilder.build nil, @dest_path, output
|
38
39
|
end
|
39
40
|
|
40
41
|
output = output.join "\n"
|
@@ -52,7 +53,7 @@ install (FILES test.txt DESTINATION bin)
|
|
52
53
|
|
53
54
|
error = assert_raises Gem::InstallError do
|
54
55
|
Dir.chdir @ext do
|
55
|
-
Gem::Ext::CmakeBuilder.build nil,
|
56
|
+
Gem::Ext::CmakeBuilder.build nil, @dest_path, output
|
56
57
|
end
|
57
58
|
end
|
58
59
|
|
@@ -75,7 +76,7 @@ install (FILES test.txt DESTINATION bin)
|
|
75
76
|
output = []
|
76
77
|
|
77
78
|
Dir.chdir @ext do
|
78
|
-
Gem::Ext::CmakeBuilder.build nil,
|
79
|
+
Gem::Ext::CmakeBuilder.build nil, @dest_path, output
|
79
80
|
end
|
80
81
|
|
81
82
|
output = output.join "\n"
|
@@ -27,7 +27,7 @@ class TestGemExtConfigureBuilder < Gem::TestCase
|
|
27
27
|
output = []
|
28
28
|
|
29
29
|
Dir.chdir @ext do
|
30
|
-
Gem::Ext::ConfigureBuilder.build nil,
|
30
|
+
Gem::Ext::ConfigureBuilder.build nil, @dest_path, output
|
31
31
|
end
|
32
32
|
|
33
33
|
assert_match(/^current directory:/, output.shift)
|
@@ -50,7 +50,7 @@ class TestGemExtConfigureBuilder < Gem::TestCase
|
|
50
50
|
|
51
51
|
error = assert_raises Gem::InstallError do
|
52
52
|
Dir.chdir @ext do
|
53
|
-
Gem::Ext::ConfigureBuilder.build nil,
|
53
|
+
Gem::Ext::ConfigureBuilder.build nil, @dest_path, output
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
@@ -76,7 +76,7 @@ class TestGemExtConfigureBuilder < Gem::TestCase
|
|
76
76
|
|
77
77
|
output = []
|
78
78
|
Dir.chdir @ext do
|
79
|
-
Gem::Ext::ConfigureBuilder.build nil,
|
79
|
+
Gem::Ext::ConfigureBuilder.build nil, @dest_path, output
|
80
80
|
end
|
81
81
|
|
82
82
|
assert_contains_make_command 'clean', output[1]
|
@@ -29,7 +29,7 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
29
29
|
|
30
30
|
Dir.chdir @ext do
|
31
31
|
result =
|
32
|
-
Gem::Ext::ExtConfBuilder.build 'extconf.rb',
|
32
|
+
Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output
|
33
33
|
|
34
34
|
assert_same result, output
|
35
35
|
end
|
@@ -54,7 +54,7 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
54
54
|
output = []
|
55
55
|
|
56
56
|
Dir.chdir @ext do
|
57
|
-
Gem::Ext::ExtConfBuilder.build 'extconf.rb',
|
57
|
+
Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output
|
58
58
|
end
|
59
59
|
|
60
60
|
assert_equal "creating Makefile\n", output[2]
|
@@ -77,7 +77,7 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
77
77
|
|
78
78
|
assert_raises Gem::InstallError do
|
79
79
|
Dir.chdir @ext do
|
80
|
-
Gem::Ext::ExtConfBuilder.build 'extconf.rb',
|
80
|
+
Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
@@ -103,7 +103,7 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
103
103
|
|
104
104
|
error = assert_raises Gem::InstallError do
|
105
105
|
Dir.chdir @ext do
|
106
|
-
Gem::Ext::ExtConfBuilder.build 'extconf.rb',
|
106
|
+
Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output
|
107
107
|
end
|
108
108
|
end
|
109
109
|
|
@@ -130,7 +130,7 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
130
130
|
output = []
|
131
131
|
|
132
132
|
Dir.chdir @ext do
|
133
|
-
Gem::Ext::ExtConfBuilder.build 'extconf.rb',
|
133
|
+
Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output
|
134
134
|
end
|
135
135
|
|
136
136
|
refute_includes(output, "To see why this extension failed to compile, please check the mkmf.log which can be found here:\n")
|
@@ -172,7 +172,7 @@ end
|
|
172
172
|
output = []
|
173
173
|
|
174
174
|
Dir.chdir @ext do
|
175
|
-
Gem::Ext::ExtConfBuilder.build 'extconf.rb',
|
175
|
+
Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output
|
176
176
|
end
|
177
177
|
|
178
178
|
assert_contains_make_command 'clean', output[4]
|
@@ -216,14 +216,14 @@ end
|
|
216
216
|
assert_equal 'Makefile not found', error.message
|
217
217
|
end
|
218
218
|
|
219
|
-
def configure_args
|
219
|
+
def configure_args(args = nil)
|
220
220
|
configure_args = RbConfig::CONFIG['configure_args']
|
221
221
|
RbConfig::CONFIG['configure_args'] = args if args
|
222
222
|
|
223
223
|
yield
|
224
224
|
|
225
225
|
ensure
|
226
|
-
if configure_args
|
226
|
+
if configure_args
|
227
227
|
RbConfig::CONFIG['configure_args'] = configure_args
|
228
228
|
else
|
229
229
|
RbConfig::CONFIG.delete 'configure_args'
|
@@ -231,4 +231,3 @@ end
|
|
231
231
|
end
|
232
232
|
|
233
233
|
end
|
234
|
-
|
@@ -19,14 +19,14 @@ class TestGemExtRakeBuilder < Gem::TestCase
|
|
19
19
|
|
20
20
|
build_rake_in do |rake|
|
21
21
|
Dir.chdir @ext do
|
22
|
-
Gem::Ext::RakeBuilder.build 'mkrf_conf.rb',
|
22
|
+
Gem::Ext::RakeBuilder.build 'mkrf_conf.rb', @dest_path, output
|
23
23
|
end
|
24
24
|
|
25
25
|
output = output.join "\n"
|
26
26
|
|
27
27
|
refute_match %r%^rake failed:%, output
|
28
28
|
assert_match %r%^#{Regexp.escape @@ruby} mkrf_conf\.rb%, output
|
29
|
-
assert_match %r%^#{Regexp.escape rake} RUBYARCHDIR
|
29
|
+
assert_match %r%^#{Regexp.escape rake} RUBYARCHDIR\\=#{Regexp.escape @dest_path} RUBYLIBDIR\\=#{Regexp.escape @dest_path}%, output
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
@@ -40,14 +40,29 @@ class TestGemExtRakeBuilder < Gem::TestCase
|
|
40
40
|
build_rake_in do |rake|
|
41
41
|
Dir.chdir @ext do
|
42
42
|
non_empty_args_list = ['']
|
43
|
-
Gem::Ext::RakeBuilder.build 'mkrf_conf.rb',
|
43
|
+
Gem::Ext::RakeBuilder.build 'mkrf_conf.rb', @dest_path, output, non_empty_args_list
|
44
44
|
end
|
45
45
|
|
46
46
|
output = output.join "\n"
|
47
47
|
|
48
48
|
refute_match %r%^rake failed:%, output
|
49
49
|
assert_match %r%^#{Regexp.escape @@ruby} mkrf_conf\.rb%, output
|
50
|
-
assert_match %r%^#{Regexp.escape rake} RUBYARCHDIR
|
50
|
+
assert_match %r%^#{Regexp.escape rake} RUBYARCHDIR\\=#{Regexp.escape @dest_path} RUBYLIBDIR\\=#{Regexp.escape @dest_path}%, output
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_class_build_no_mkrf_passes_args
|
55
|
+
output = []
|
56
|
+
|
57
|
+
build_rake_in do |rake|
|
58
|
+
Dir.chdir @ext do
|
59
|
+
Gem::Ext::RakeBuilder.build "ext/Rakefile", @dest_path, output, ["test1", "test2"]
|
60
|
+
end
|
61
|
+
|
62
|
+
output = output.join "\n"
|
63
|
+
|
64
|
+
refute_match %r%^rake failed:%, output
|
65
|
+
assert_match %r%^#{Regexp.escape rake} RUBYARCHDIR\\=#{Regexp.escape @dest_path} RUBYLIBDIR\\=#{Regexp.escape @dest_path} test1 test2%, output
|
51
66
|
end
|
52
67
|
end
|
53
68
|
|
@@ -58,7 +73,7 @@ class TestGemExtRakeBuilder < Gem::TestCase
|
|
58
73
|
build_rake_in(false) do |rake|
|
59
74
|
error = assert_raises Gem::InstallError do
|
60
75
|
Dir.chdir @ext do
|
61
|
-
Gem::Ext::RakeBuilder.build "mkrf_conf.rb",
|
76
|
+
Gem::Ext::RakeBuilder.build "mkrf_conf.rb", @dest_path, output
|
62
77
|
end
|
63
78
|
end
|
64
79
|
|
@@ -8,6 +8,8 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|
8
8
|
|
9
9
|
def setup
|
10
10
|
super
|
11
|
+
# below needed for random testing, class property
|
12
|
+
Gem.configuration.disable_default_gem_server = nil
|
11
13
|
|
12
14
|
ENV['RUBYGEMS_HOST'] = nil
|
13
15
|
Gem.configuration.rubygems_api_key = nil
|
@@ -177,8 +179,6 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|
177
179
|
end
|
178
180
|
|
179
181
|
def test_sign_in_with_bad_credentials
|
180
|
-
skip 'Always uses $stdin on windows' if Gem.win_platform?
|
181
|
-
|
182
182
|
assert_raises Gem::MockGemUi::TermError do
|
183
183
|
util_sign_in ['Access Denied.', 403, 'Forbidden']
|
184
184
|
end
|
@@ -187,9 +187,35 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|
187
187
|
assert_match %r{Access Denied.}, @sign_in_ui.output
|
188
188
|
end
|
189
189
|
|
190
|
-
def
|
191
|
-
|
190
|
+
def test_sign_in_with_correct_otp_code
|
191
|
+
api_key = 'a5fdbb6ba150cbb83aad2bb2fede64cf040453903'
|
192
|
+
response_fail = "You have enabled multifactor authentication but your request doesn't have the correct OTP code. Please check it and retry."
|
193
|
+
|
194
|
+
util_sign_in(proc do
|
195
|
+
@call_count ||= 0
|
196
|
+
(@call_count += 1).odd? ? [response_fail, 401, 'Unauthorized'] : [api_key, 200, 'OK']
|
197
|
+
end, nil, [], "111111\n")
|
198
|
+
|
199
|
+
assert_match 'You have enabled multi-factor authentication. Please enter OTP code.', @sign_in_ui.output
|
200
|
+
assert_match 'Code: ', @sign_in_ui.output
|
201
|
+
assert_match 'Signed in.', @sign_in_ui.output
|
202
|
+
assert_equal '111111', @fetcher.last_request['OTP']
|
203
|
+
end
|
204
|
+
|
205
|
+
def test_sign_in_with_incorrect_otp_code
|
206
|
+
response = "You have enabled multifactor authentication but your request doesn't have the correct OTP code. Please check it and retry."
|
207
|
+
|
208
|
+
assert_raises Gem::MockGemUi::TermError do
|
209
|
+
util_sign_in [response, 401, 'Unauthorized'], nil, [], "111111\n"
|
210
|
+
end
|
211
|
+
|
212
|
+
assert_match 'You have enabled multi-factor authentication. Please enter OTP code.', @sign_in_ui.output
|
213
|
+
assert_match 'Code: ', @sign_in_ui.output
|
214
|
+
assert_match response, @sign_in_ui.output
|
215
|
+
assert_equal '111111', @fetcher.last_request['OTP']
|
216
|
+
end
|
192
217
|
|
218
|
+
def util_sign_in(response, host = nil, args = [], extra_input = '')
|
193
219
|
email = 'you@example.com'
|
194
220
|
password = 'secret'
|
195
221
|
|
@@ -203,10 +229,10 @@ class TestGemGemcutterUtilities < Gem::TestCase
|
|
203
229
|
@fetcher.data["#{host}/api/v1/api_key"] = response
|
204
230
|
Gem::RemoteFetcher.fetcher = @fetcher
|
205
231
|
|
206
|
-
@sign_in_ui = Gem::MockGemUi.new
|
232
|
+
@sign_in_ui = Gem::MockGemUi.new("#{email}\n#{password}\n" + extra_input)
|
207
233
|
|
208
234
|
use_ui @sign_in_ui do
|
209
|
-
if args.length > 0
|
235
|
+
if args.length > 0
|
210
236
|
@cmd.sign_in(*args)
|
211
237
|
else
|
212
238
|
@cmd.sign_in
|
@@ -2,7 +2,7 @@
|
|
2
2
|
require 'rubygems/test_case'
|
3
3
|
require 'rubygems/indexer'
|
4
4
|
|
5
|
-
unless defined?(Builder::XChar)
|
5
|
+
unless defined?(Builder::XChar)
|
6
6
|
warn "Gem::Indexer tests are being skipped. Install builder gem." if $VERBOSE
|
7
7
|
end
|
8
8
|
|
@@ -37,6 +37,13 @@ class TestGemIndexer < Gem::TestCase
|
|
37
37
|
@indexer = Gem::Indexer.new(@tempdir)
|
38
38
|
end
|
39
39
|
|
40
|
+
def teardown
|
41
|
+
super
|
42
|
+
|
43
|
+
util_clear_gems
|
44
|
+
util_clear_default_gems
|
45
|
+
end
|
46
|
+
|
40
47
|
def test_initialize
|
41
48
|
assert_equal @tempdir, @indexer.dest_directory
|
42
49
|
assert_match %r{#{Dir.mktmpdir('gem_generate_index').match(/.*-/)}}, @indexer.directory
|
@@ -96,8 +103,8 @@ class TestGemIndexer < Gem::TestCase
|
|
96
103
|
quickdir = File.join @tempdir, 'quick'
|
97
104
|
marshal_quickdir = File.join quickdir, "Marshal.#{@marshal_version}"
|
98
105
|
|
99
|
-
|
100
|
-
|
106
|
+
assert_directory_exists quickdir
|
107
|
+
assert_directory_exists marshal_quickdir
|
101
108
|
|
102
109
|
assert_indexed marshal_quickdir, "#{File.basename(@a1.spec_file)}.rz"
|
103
110
|
assert_indexed marshal_quickdir, "#{File.basename(@a2.spec_file)}.rz"
|
@@ -126,8 +133,8 @@ class TestGemIndexer < Gem::TestCase
|
|
126
133
|
quickdir = File.join @tempdir, 'quick'
|
127
134
|
marshal_quickdir = File.join quickdir, "Marshal.#{@marshal_version}"
|
128
135
|
|
129
|
-
|
130
|
-
|
136
|
+
assert_directory_exists quickdir, 'quickdir should be directory'
|
137
|
+
assert_directory_exists marshal_quickdir
|
131
138
|
|
132
139
|
refute_indexed quickdir, "index"
|
133
140
|
refute_indexed quickdir, "index.rz"
|
@@ -172,8 +179,8 @@ class TestGemIndexer < Gem::TestCase
|
|
172
179
|
quickdir = File.join @tempdir, 'quick'
|
173
180
|
marshal_quickdir = File.join quickdir, "Marshal.#{@marshal_version}"
|
174
181
|
|
175
|
-
|
176
|
-
|
182
|
+
assert_directory_exists quickdir
|
183
|
+
assert_directory_exists marshal_quickdir
|
177
184
|
|
178
185
|
assert_indexed marshal_quickdir, "#{File.basename(@a1.spec_file)}.rz"
|
179
186
|
assert_indexed marshal_quickdir, "#{File.basename(@a2.spec_file)}.rz"
|
@@ -308,8 +315,8 @@ class TestGemIndexer < Gem::TestCase
|
|
308
315
|
quickdir = File.join @tempdir, 'quick'
|
309
316
|
marshal_quickdir = File.join quickdir, "Marshal.#{@marshal_version}"
|
310
317
|
|
311
|
-
|
312
|
-
|
318
|
+
assert_directory_exists quickdir
|
319
|
+
assert_directory_exists marshal_quickdir
|
313
320
|
|
314
321
|
@d2_1 = util_spec 'd', '2.1'
|
315
322
|
util_build_gem @d2_1
|
@@ -363,4 +370,3 @@ class TestGemIndexer < Gem::TestCase
|
|
363
370
|
end
|
364
371
|
|
365
372
|
end if defined?(Builder::XChar)
|
366
|
-
|
@@ -21,8 +21,7 @@ class TestGemInstallUpdateOptions < Gem::InstallerTestCase
|
|
21
21
|
--build-root build_root
|
22
22
|
--format-exec
|
23
23
|
--ignore-dependencies
|
24
|
-
--
|
25
|
-
--ri
|
24
|
+
--document
|
26
25
|
-E
|
27
26
|
-f
|
28
27
|
-i /install_to
|
@@ -92,24 +91,6 @@ class TestGemInstallUpdateOptions < Gem::InstallerTestCase
|
|
92
91
|
assert_equal %w[ri], @cmd.options[:document]
|
93
92
|
end
|
94
93
|
|
95
|
-
def test_rdoc
|
96
|
-
@cmd.handle_options %w[--rdoc]
|
97
|
-
|
98
|
-
assert_equal %w[rdoc ri], @cmd.options[:document].sort
|
99
|
-
end
|
100
|
-
|
101
|
-
def test_rdoc_no
|
102
|
-
@cmd.handle_options %w[--no-rdoc]
|
103
|
-
|
104
|
-
assert_equal %w[ri], @cmd.options[:document]
|
105
|
-
end
|
106
|
-
|
107
|
-
def test_ri
|
108
|
-
@cmd.handle_options %w[--no-ri]
|
109
|
-
|
110
|
-
assert_equal %w[], @cmd.options[:document]
|
111
|
-
end
|
112
|
-
|
113
94
|
def test_security_policy
|
114
95
|
skip 'openssl is missing' unless defined?(OpenSSL::SSL)
|
115
96
|
|