rubygems-update 3.4.22 → 3.5.0

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.
Files changed (528) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +99 -2
  3. data/Manifest.txt +34 -221
  4. data/README.md +1 -3
  5. data/bundler/CHANGELOG.md +53 -0
  6. data/bundler/bundler.gemspec +4 -2
  7. data/bundler/exe/bundle +1 -10
  8. data/bundler/lib/bundler/build_metadata.rb +3 -3
  9. data/bundler/lib/bundler/capistrano.rb +1 -1
  10. data/bundler/lib/bundler/checksum.rb +245 -0
  11. data/bundler/lib/bundler/ci_detector.rb +75 -0
  12. data/bundler/lib/bundler/cli/add.rb +3 -3
  13. data/bundler/lib/bundler/cli/binstubs.rb +4 -4
  14. data/bundler/lib/bundler/cli/cache.rb +1 -1
  15. data/bundler/lib/bundler/cli/check.rb +1 -1
  16. data/bundler/lib/bundler/cli/common.rb +9 -1
  17. data/bundler/lib/bundler/cli/config.rb +8 -7
  18. data/bundler/lib/bundler/cli/console.rb +3 -2
  19. data/bundler/lib/bundler/cli/doctor.rb +2 -2
  20. data/bundler/lib/bundler/cli/exec.rb +1 -1
  21. data/bundler/lib/bundler/cli/gem.rb +28 -23
  22. data/bundler/lib/bundler/cli/info.rb +2 -13
  23. data/bundler/lib/bundler/cli/install.rb +5 -4
  24. data/bundler/lib/bundler/cli/issue.rb +1 -1
  25. data/bundler/lib/bundler/cli/lock.rb +4 -4
  26. data/bundler/lib/bundler/cli/open.rb +1 -1
  27. data/bundler/lib/bundler/cli/outdated.rb +6 -6
  28. data/bundler/lib/bundler/cli/plugin.rb +7 -14
  29. data/bundler/lib/bundler/cli/pristine.rb +38 -30
  30. data/bundler/lib/bundler/cli/show.rb +2 -2
  31. data/bundler/lib/bundler/cli/update.rb +5 -5
  32. data/bundler/lib/bundler/cli.rb +215 -263
  33. data/bundler/lib/bundler/compact_index_client/cache.rb +29 -9
  34. data/bundler/lib/bundler/compact_index_client/cache_file.rb +153 -0
  35. data/bundler/lib/bundler/compact_index_client/gem_parser.rb +7 -3
  36. data/bundler/lib/bundler/compact_index_client/updater.rb +79 -81
  37. data/bundler/lib/bundler/compact_index_client.rb +14 -7
  38. data/bundler/lib/bundler/constants.rb +1 -1
  39. data/bundler/lib/bundler/current_ruby.rb +5 -21
  40. data/bundler/lib/bundler/definition.rb +42 -15
  41. data/bundler/lib/bundler/dependency.rb +16 -12
  42. data/bundler/lib/bundler/digest.rb +2 -2
  43. data/bundler/lib/bundler/dsl.rb +43 -25
  44. data/bundler/lib/bundler/endpoint_specification.rb +5 -1
  45. data/bundler/lib/bundler/env.rb +1 -3
  46. data/bundler/lib/bundler/errors.rb +43 -0
  47. data/bundler/lib/bundler/fetcher/base.rb +3 -1
  48. data/bundler/lib/bundler/fetcher/compact_index.rb +4 -4
  49. data/bundler/lib/bundler/fetcher/downloader.rb +13 -11
  50. data/bundler/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
  51. data/bundler/lib/bundler/fetcher/index.rb +1 -1
  52. data/bundler/lib/bundler/fetcher.rb +28 -25
  53. data/bundler/lib/bundler/friendly_errors.rb +5 -5
  54. data/bundler/lib/bundler/gem_helper.rb +1 -1
  55. data/bundler/lib/bundler/gem_helpers.rb +5 -2
  56. data/bundler/lib/bundler/graph.rb +9 -9
  57. data/bundler/lib/bundler/index.rb +1 -2
  58. data/bundler/lib/bundler/injector.rb +1 -1
  59. data/bundler/lib/bundler/inline.rb +3 -3
  60. data/bundler/lib/bundler/installer/gem_installer.rb +5 -5
  61. data/bundler/lib/bundler/installer/parallel_installer.rb +16 -8
  62. data/bundler/lib/bundler/installer/standalone.rb +2 -3
  63. data/bundler/lib/bundler/installer.rb +9 -9
  64. data/bundler/lib/bundler/lazy_specification.rb +24 -17
  65. data/bundler/lib/bundler/lockfile_generator.rb +9 -0
  66. data/bundler/lib/bundler/lockfile_parser.rb +81 -10
  67. data/bundler/lib/bundler/man/bundle-add.1 +3 -26
  68. data/bundler/lib/bundler/man/bundle-binstubs.1 +4 -16
  69. data/bundler/lib/bundler/man/bundle-cache.1 +3 -24
  70. data/bundler/lib/bundler/man/bundle-check.1 +3 -12
  71. data/bundler/lib/bundler/man/bundle-clean.1 +3 -10
  72. data/bundler/lib/bundler/man/bundle-config.1 +20 -211
  73. data/bundler/lib/bundler/man/bundle-config.1.ronn +6 -0
  74. data/bundler/lib/bundler/man/bundle-console.1 +4 -22
  75. data/bundler/lib/bundler/man/bundle-doctor.1 +4 -18
  76. data/bundler/lib/bundler/man/bundle-exec.1 +12 -73
  77. data/bundler/lib/bundler/man/bundle-gem.1 +13 -49
  78. data/bundler/lib/bundler/man/bundle-help.1 +3 -7
  79. data/bundler/lib/bundler/man/bundle-info.1 +3 -9
  80. data/bundler/lib/bundler/man/bundle-init.1 +3 -12
  81. data/bundler/lib/bundler/man/bundle-inject.1 +6 -19
  82. data/bundler/lib/bundler/man/bundle-install.1 +27 -125
  83. data/bundler/lib/bundler/man/bundle-install.1.ronn +1 -0
  84. data/bundler/lib/bundler/man/bundle-list.1 +4 -19
  85. data/bundler/lib/bundler/man/bundle-lock.1 +5 -29
  86. data/bundler/lib/bundler/man/bundle-open.1 +7 -27
  87. data/bundler/lib/bundler/man/bundle-outdated.1 +3 -55
  88. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -0
  89. data/bundler/lib/bundler/man/bundle-platform.1 +5 -27
  90. data/bundler/lib/bundler/man/bundle-plugin.1 +3 -29
  91. data/bundler/lib/bundler/man/bundle-pristine.1 +5 -16
  92. data/bundler/lib/bundler/man/bundle-remove.1 +4 -14
  93. data/bundler/lib/bundler/man/bundle-show.1 +3 -10
  94. data/bundler/lib/bundler/man/bundle-update.1 +18 -137
  95. data/bundler/lib/bundler/man/bundle-version.1 +3 -16
  96. data/bundler/lib/bundler/man/bundle-viz.1 +4 -16
  97. data/bundler/lib/bundler/man/bundle.1 +5 -44
  98. data/bundler/lib/bundler/man/gemfile.5 +24 -301
  99. data/bundler/lib/bundler/man/gemfile.5.ronn +4 -0
  100. data/bundler/lib/bundler/match_metadata.rb +4 -0
  101. data/bundler/lib/bundler/match_platform.rb +1 -1
  102. data/bundler/lib/bundler/plugin/api/source.rb +3 -2
  103. data/bundler/lib/bundler/plugin/installer.rb +1 -1
  104. data/bundler/lib/bundler/plugin.rb +3 -3
  105. data/bundler/lib/bundler/resolver/base.rb +1 -1
  106. data/bundler/lib/bundler/resolver/incompatibility.rb +1 -1
  107. data/bundler/lib/bundler/resolver/spec_group.rb +1 -4
  108. data/bundler/lib/bundler/resolver.rb +16 -16
  109. data/bundler/lib/bundler/ruby_dsl.rb +20 -12
  110. data/bundler/lib/bundler/ruby_version.rb +1 -1
  111. data/bundler/lib/bundler/rubygems_ext.rb +24 -50
  112. data/bundler/lib/bundler/rubygems_gem_installer.rb +6 -56
  113. data/bundler/lib/bundler/rubygems_integration.rb +25 -94
  114. data/bundler/lib/bundler/runtime.rb +2 -2
  115. data/bundler/lib/bundler/self_manager.rb +23 -7
  116. data/bundler/lib/bundler/settings.rb +27 -7
  117. data/bundler/lib/bundler/setup.rb +4 -1
  118. data/bundler/lib/bundler/shared_helpers.rb +35 -13
  119. data/bundler/lib/bundler/source/git/git_proxy.rb +15 -15
  120. data/bundler/lib/bundler/source/git.rb +4 -3
  121. data/bundler/lib/bundler/source/metadata.rb +15 -15
  122. data/bundler/lib/bundler/source/path.rb +7 -6
  123. data/bundler/lib/bundler/source/rubygems.rb +21 -14
  124. data/bundler/lib/bundler/source.rb +2 -0
  125. data/bundler/lib/bundler/spec_set.rb +38 -10
  126. data/bundler/lib/bundler/stub_specification.rb +1 -0
  127. data/bundler/lib/bundler/templates/Executable.bundler +1 -1
  128. data/bundler/lib/bundler/templates/newgem/README.md.tt +3 -3
  129. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +2 -6
  130. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +1 -1
  131. data/bundler/lib/bundler/templates/newgem/standard.yml.tt +1 -1
  132. data/bundler/lib/bundler/ui/shell.rb +1 -1
  133. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  134. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +53 -6
  135. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +8 -20
  136. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +3 -3
  137. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +2 -2
  138. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
  139. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +35 -35
  140. data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +3 -0
  141. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +256 -132
  142. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1 -0
  143. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +95 -31
  144. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  145. data/bundler/lib/bundler/vendored_net_http.rb +8 -0
  146. data/bundler/lib/bundler/vendored_persistent.rb +0 -4
  147. data/bundler/lib/bundler/vendored_timeout.rb +8 -0
  148. data/bundler/lib/bundler/version.rb +1 -1
  149. data/bundler/lib/bundler/vlad.rb +1 -1
  150. data/bundler/lib/bundler/yaml_serializer.rb +3 -3
  151. data/bundler/lib/bundler.rb +38 -27
  152. data/lib/rubygems/available_set.rb +4 -4
  153. data/lib/rubygems/basic_specification.rb +35 -37
  154. data/lib/rubygems/bundler_version_finder.rb +4 -4
  155. data/lib/rubygems/ci_detector.rb +75 -0
  156. data/lib/rubygems/command.rb +13 -15
  157. data/lib/rubygems/command_manager.rb +5 -4
  158. data/lib/rubygems/commands/build_command.rb +2 -2
  159. data/lib/rubygems/commands/cert_command.rb +1 -2
  160. data/lib/rubygems/commands/check_command.rb +4 -4
  161. data/lib/rubygems/commands/cleanup_command.rb +12 -14
  162. data/lib/rubygems/commands/contents_command.rb +4 -4
  163. data/lib/rubygems/commands/dependency_command.rb +4 -5
  164. data/lib/rubygems/commands/environment_command.rb +1 -3
  165. data/lib/rubygems/commands/exec_command.rb +1 -1
  166. data/lib/rubygems/commands/fetch_command.rb +2 -2
  167. data/lib/rubygems/commands/generate_index_command.rb +39 -74
  168. data/lib/rubygems/commands/help_command.rb +3 -3
  169. data/lib/rubygems/commands/info_command.rb +2 -2
  170. data/lib/rubygems/commands/install_command.rb +8 -16
  171. data/lib/rubygems/commands/list_command.rb +2 -2
  172. data/lib/rubygems/commands/lock_command.rb +1 -1
  173. data/lib/rubygems/commands/open_command.rb +1 -1
  174. data/lib/rubygems/commands/owner_command.rb +1 -1
  175. data/lib/rubygems/commands/pristine_command.rb +13 -15
  176. data/lib/rubygems/commands/push_command.rb +2 -2
  177. data/lib/rubygems/commands/query_command.rb +4 -5
  178. data/lib/rubygems/commands/rdoc_command.rb +2 -2
  179. data/lib/rubygems/commands/search_command.rb +2 -2
  180. data/lib/rubygems/commands/setup_command.rb +31 -34
  181. data/lib/rubygems/commands/sources_command.rb +12 -12
  182. data/lib/rubygems/commands/specification_command.rb +10 -10
  183. data/lib/rubygems/commands/stale_command.rb +1 -1
  184. data/lib/rubygems/commands/uninstall_command.rb +9 -10
  185. data/lib/rubygems/commands/unpack_command.rb +4 -4
  186. data/lib/rubygems/commands/update_command.rb +10 -12
  187. data/lib/rubygems/commands/which_command.rb +1 -1
  188. data/lib/rubygems/commands/yank_command.rb +1 -1
  189. data/lib/rubygems/compatibility.rb +5 -6
  190. data/lib/rubygems/config_file.rb +4 -4
  191. data/lib/rubygems/core_ext/kernel_gem.rb +0 -2
  192. data/lib/rubygems/core_ext/kernel_require.rb +19 -48
  193. data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
  194. data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
  195. data/lib/rubygems/defaults.rb +15 -3
  196. data/lib/rubygems/dependency.rb +12 -14
  197. data/lib/rubygems/dependency_installer.rb +29 -30
  198. data/lib/rubygems/dependency_list.rb +1 -1
  199. data/lib/rubygems/deprecate.rb +16 -15
  200. data/lib/rubygems/doctor.rb +5 -5
  201. data/lib/rubygems/errors.rb +2 -6
  202. data/lib/rubygems/exceptions.rb +2 -1
  203. data/lib/rubygems/ext/builder.rb +15 -10
  204. data/lib/rubygems/ext/cargo_builder.rb +5 -5
  205. data/lib/rubygems/ext/ext_conf_builder.rb +1 -3
  206. data/lib/rubygems/gem_runner.rb +4 -4
  207. data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +3 -3
  208. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -3
  209. data/lib/rubygems/gemcutter_utilities.rb +18 -19
  210. data/lib/rubygems/install_update_options.rb +18 -19
  211. data/lib/rubygems/installer.rb +59 -33
  212. data/lib/rubygems/installer_uninstaller_utils.rb +0 -2
  213. data/lib/rubygems/local_remote_options.rb +7 -10
  214. data/lib/rubygems/name_tuple.rb +7 -9
  215. data/lib/rubygems/net/http.rb +3 -0
  216. data/lib/rubygems/net-http/LICENSE.txt +22 -0
  217. data/lib/rubygems/net-http/lib/net/http/backward.rb +40 -0
  218. data/lib/rubygems/net-http/lib/net/http/exceptions.rb +34 -0
  219. data/lib/rubygems/net-http/lib/net/http/generic_request.rb +414 -0
  220. data/lib/rubygems/net-http/lib/net/http/header.rb +981 -0
  221. data/lib/rubygems/net-http/lib/net/http/proxy_delta.rb +17 -0
  222. data/lib/rubygems/net-http/lib/net/http/request.rb +88 -0
  223. data/lib/rubygems/net-http/lib/net/http/requests.rb +425 -0
  224. data/lib/rubygems/net-http/lib/net/http/response.rb +738 -0
  225. data/lib/rubygems/net-http/lib/net/http/responses.rb +1174 -0
  226. data/lib/rubygems/net-http/lib/net/http/status.rb +84 -0
  227. data/lib/rubygems/net-http/lib/net/http.rb +2496 -0
  228. data/lib/rubygems/net-http/lib/net/https.rb +23 -0
  229. data/lib/rubygems/net-protocol/LICENSE.txt +22 -0
  230. data/lib/rubygems/net-protocol/lib/net/protocol.rb +544 -0
  231. data/lib/rubygems/optparse/lib/optparse.rb +39 -17
  232. data/lib/rubygems/package/old.rb +2 -2
  233. data/lib/rubygems/package/tar_header.rb +45 -39
  234. data/lib/rubygems/package/tar_reader/entry.rb +5 -4
  235. data/lib/rubygems/package/tar_reader.rb +5 -3
  236. data/lib/rubygems/package/tar_writer.rb +19 -17
  237. data/lib/rubygems/package.rb +27 -26
  238. data/lib/rubygems/package_task.rb +2 -2
  239. data/lib/rubygems/path_support.rb +9 -10
  240. data/lib/rubygems/platform.rb +60 -45
  241. data/lib/rubygems/query_utils.rb +7 -9
  242. data/lib/rubygems/remote_fetcher.rb +15 -15
  243. data/lib/rubygems/request/connection_pools.rb +3 -3
  244. data/lib/rubygems/request.rb +20 -17
  245. data/lib/rubygems/request_set/gem_dependency_api.rb +119 -122
  246. data/lib/rubygems/request_set/lockfile/parser.rb +9 -9
  247. data/lib/rubygems/request_set/lockfile/tokenizer.rb +20 -12
  248. data/lib/rubygems/request_set/lockfile.rb +6 -11
  249. data/lib/rubygems/request_set.rb +5 -5
  250. data/lib/rubygems/requirement.rb +7 -7
  251. data/lib/rubygems/resolv/LICENSE.txt +22 -0
  252. data/lib/rubygems/resolv/lib/resolv.rb +3387 -0
  253. data/lib/rubygems/resolver/activation_request.rb +1 -3
  254. data/lib/rubygems/resolver/api_set/gem_parser.rb +7 -3
  255. data/lib/rubygems/resolver/best_set.rb +1 -1
  256. data/lib/rubygems/resolver/composed_set.rb +1 -1
  257. data/lib/rubygems/resolver/conflict.rb +4 -12
  258. data/lib/rubygems/resolver/index_set.rb +4 -4
  259. data/lib/rubygems/resolver/index_specification.rb +2 -2
  260. data/lib/rubygems/resolver/installer_set.rb +5 -6
  261. data/lib/rubygems/resolver/lock_set.rb +1 -1
  262. data/lib/rubygems/resolver.rb +3 -10
  263. data/lib/rubygems/s3_uri_signer.rb +6 -6
  264. data/lib/rubygems/safe_marshal/elements.rb +138 -0
  265. data/lib/rubygems/safe_marshal/reader.rb +306 -0
  266. data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
  267. data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +385 -0
  268. data/lib/rubygems/safe_marshal/visitors/visitor.rb +74 -0
  269. data/lib/rubygems/safe_marshal.rb +74 -0
  270. data/lib/rubygems/safe_yaml.rb +5 -28
  271. data/lib/rubygems/security/policies.rb +36 -38
  272. data/lib/rubygems/security/policy.rb +7 -11
  273. data/lib/rubygems/security/signer.rb +1 -1
  274. data/lib/rubygems/security/trust_dir.rb +3 -3
  275. data/lib/rubygems/security.rb +8 -22
  276. data/lib/rubygems/source/git.rb +1 -3
  277. data/lib/rubygems/source/installed.rb +0 -2
  278. data/lib/rubygems/source/local.rb +5 -8
  279. data/lib/rubygems/source/lock.rb +1 -3
  280. data/lib/rubygems/source/specific_file.rb +0 -1
  281. data/lib/rubygems/source/vendor.rb +0 -2
  282. data/lib/rubygems/source.rb +12 -12
  283. data/lib/rubygems/source_list.rb +4 -4
  284. data/lib/rubygems/spec_fetcher.rb +29 -29
  285. data/lib/rubygems/specification.rb +125 -138
  286. data/lib/rubygems/specification_policy.rb +55 -25
  287. data/lib/rubygems/stub_specification.rb +4 -5
  288. data/lib/rubygems/text.rb +1 -2
  289. data/lib/rubygems/timeout/LICENSE.txt +22 -0
  290. data/lib/rubygems/timeout/lib/timeout.rb +199 -0
  291. data/lib/rubygems/timeout.rb +3 -0
  292. data/lib/rubygems/tsort/lib/tsort.rb +3 -0
  293. data/lib/rubygems/uninstaller.rb +7 -9
  294. data/lib/rubygems/update_suggestion.rb +5 -18
  295. data/lib/rubygems/uri_formatter.rb +1 -1
  296. data/lib/rubygems/user_interaction.rb +15 -21
  297. data/lib/rubygems/util/licenses.rb +65 -35
  298. data/lib/rubygems/util/list.rb +3 -1
  299. data/lib/rubygems/util.rb +2 -4
  300. data/lib/rubygems/validator.rb +5 -3
  301. data/lib/rubygems/version.rb +34 -28
  302. data/lib/rubygems/version_option.rb +2 -5
  303. data/lib/rubygems/yaml_serializer.rb +3 -3
  304. data/lib/rubygems.rb +37 -37
  305. data/rubygems-update.gemspec +4 -4
  306. data/setup.rb +2 -2
  307. metadata +38 -225
  308. data/lib/rubygems/indexer.rb +0 -428
  309. data/lib/rubygems/mock_gem_ui.rb +0 -86
  310. data/test/rubygems/alternate_cert.pem +0 -19
  311. data/test/rubygems/alternate_cert_32.pem +0 -19
  312. data/test/rubygems/alternate_key.pem +0 -27
  313. data/test/rubygems/bad_rake.rb +0 -3
  314. data/test/rubygems/bundler_test_gem.rb +0 -424
  315. data/test/rubygems/ca_cert.pem +0 -77
  316. data/test/rubygems/child_cert.pem +0 -19
  317. data/test/rubygems/child_cert_32.pem +0 -19
  318. data/test/rubygems/child_key.pem +0 -27
  319. data/test/rubygems/client.pem +0 -107
  320. data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
  321. data/test/rubygems/data/gem-private_key.pem +0 -27
  322. data/test/rubygems/data/gem-public_cert.pem +0 -20
  323. data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
  324. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  325. data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
  326. data/test/rubygems/encrypted_private_key.pem +0 -30
  327. data/test/rubygems/expired_cert.pem +0 -19
  328. data/test/rubygems/fake_certlib/openssl.rb +0 -9
  329. data/test/rubygems/foo/discover.rb +0 -1
  330. data/test/rubygems/future_cert.pem +0 -19
  331. data/test/rubygems/future_cert_32.pem +0 -19
  332. data/test/rubygems/good_rake.rb +0 -3
  333. data/test/rubygems/grandchild_cert.pem +0 -19
  334. data/test/rubygems/grandchild_cert_32.pem +0 -19
  335. data/test/rubygems/grandchild_key.pem +0 -27
  336. data/test/rubygems/helper.rb +0 -1649
  337. data/test/rubygems/installer_test_case.rb +0 -248
  338. data/test/rubygems/invalid_client.pem +0 -49
  339. data/test/rubygems/invalid_issuer_cert.pem +0 -20
  340. data/test/rubygems/invalid_issuer_cert_32.pem +0 -20
  341. data/test/rubygems/invalid_key.pem +0 -27
  342. data/test/rubygems/invalid_signer_cert.pem +0 -19
  343. data/test/rubygems/invalid_signer_cert_32.pem +0 -19
  344. data/test/rubygems/invalidchild_cert.pem +0 -19
  345. data/test/rubygems/invalidchild_cert_32.pem +0 -19
  346. data/test/rubygems/invalidchild_key.pem +0 -27
  347. data/test/rubygems/multifactor_auth_utilities.rb +0 -111
  348. data/test/rubygems/package/tar_test_case.rb +0 -175
  349. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  350. data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
  351. data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
  352. data/test/rubygems/plugin/exception/rubygems_plugin.rb +0 -4
  353. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -5
  354. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -4
  355. data/test/rubygems/private3072_key.pem +0 -40
  356. data/test/rubygems/private_ec_key.pem +0 -9
  357. data/test/rubygems/private_key.pem +0 -27
  358. data/test/rubygems/public3072_cert.pem +0 -25
  359. data/test/rubygems/public_cert.pem +0 -20
  360. data/test/rubygems/public_cert_32.pem +0 -19
  361. data/test/rubygems/public_key.pem +0 -9
  362. data/test/rubygems/rubygems/commands/crash_command.rb +0 -5
  363. data/test/rubygems/rubygems_plugin.rb +0 -24
  364. data/test/rubygems/sff/discover.rb +0 -1
  365. data/test/rubygems/simple_gem.rb +0 -68
  366. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -9
  367. data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
  368. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +0 -14
  369. data/test/rubygems/ssl_cert.pem +0 -80
  370. data/test/rubygems/ssl_key.pem +0 -27
  371. data/test/rubygems/test_bundled_ca.rb +0 -61
  372. data/test/rubygems/test_config.rb +0 -28
  373. data/test/rubygems/test_deprecate.rb +0 -158
  374. data/test/rubygems/test_exit.rb +0 -17
  375. data/test/rubygems/test_gem.rb +0 -1799
  376. data/test/rubygems/test_gem_available_set.rb +0 -130
  377. data/test/rubygems/test_gem_bundler_version_finder.rb +0 -127
  378. data/test/rubygems/test_gem_command.rb +0 -403
  379. data/test/rubygems/test_gem_command_manager.rb +0 -400
  380. data/test/rubygems/test_gem_commands_build_command.rb +0 -739
  381. data/test/rubygems/test_gem_commands_cert_command.rb +0 -866
  382. data/test/rubygems/test_gem_commands_check_command.rb +0 -68
  383. data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -292
  384. data/test/rubygems/test_gem_commands_contents_command.rb +0 -271
  385. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -228
  386. data/test/rubygems/test_gem_commands_environment_command.rb +0 -169
  387. data/test/rubygems/test_gem_commands_exec_command.rb +0 -857
  388. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -258
  389. data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -81
  390. data/test/rubygems/test_gem_commands_help_command.rb +0 -94
  391. data/test/rubygems/test_gem_commands_info_command.rb +0 -70
  392. data/test/rubygems/test_gem_commands_install_command.rb +0 -1573
  393. data/test/rubygems/test_gem_commands_list_command.rb +0 -33
  394. data/test/rubygems/test_gem_commands_lock_command.rb +0 -67
  395. data/test/rubygems/test_gem_commands_mirror.rb +0 -20
  396. data/test/rubygems/test_gem_commands_open_command.rb +0 -101
  397. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -50
  398. data/test/rubygems/test_gem_commands_owner_command.rb +0 -503
  399. data/test/rubygems/test_gem_commands_pristine_command.rb +0 -708
  400. data/test/rubygems/test_gem_commands_push_command.rb +0 -603
  401. data/test/rubygems/test_gem_commands_query_command.rb +0 -858
  402. data/test/rubygems/test_gem_commands_search_command.rb +0 -16
  403. data/test/rubygems/test_gem_commands_server_command.rb +0 -20
  404. data/test/rubygems/test_gem_commands_setup_command.rb +0 -474
  405. data/test/rubygems/test_gem_commands_signin_command.rb +0 -259
  406. data/test/rubygems/test_gem_commands_signout_command.rb +0 -30
  407. data/test/rubygems/test_gem_commands_sources_command.rb +0 -534
  408. data/test/rubygems/test_gem_commands_specification_command.rb +0 -277
  409. data/test/rubygems/test_gem_commands_stale_command.rb +0 -43
  410. data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -542
  411. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -224
  412. data/test/rubygems/test_gem_commands_update_command.rb +0 -836
  413. data/test/rubygems/test_gem_commands_which_command.rb +0 -85
  414. data/test/rubygems/test_gem_commands_yank_command.rb +0 -299
  415. data/test/rubygems/test_gem_config_file.rb +0 -551
  416. data/test/rubygems/test_gem_dependency.rb +0 -398
  417. data/test/rubygems/test_gem_dependency_installer.rb +0 -1190
  418. data/test/rubygems/test_gem_dependency_list.rb +0 -265
  419. data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -27
  420. data/test/rubygems/test_gem_doctor.rb +0 -195
  421. data/test/rubygems/test_gem_ext_builder.rb +0 -337
  422. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +0 -1
  423. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +0 -10
  424. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +0 -249
  425. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +0 -10
  426. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +0 -27
  427. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +0 -3
  428. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +0 -1
  429. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +0 -249
  430. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +0 -10
  431. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +0 -10
  432. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +0 -51
  433. data/test/rubygems/test_gem_ext_cargo_builder.rb +0 -167
  434. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +0 -34
  435. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -60
  436. data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -84
  437. data/test/rubygems/test_gem_ext_configure_builder.rb +0 -80
  438. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -229
  439. data/test/rubygems/test_gem_ext_rake_builder.rb +0 -113
  440. data/test/rubygems/test_gem_gem_runner.rb +0 -119
  441. data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -361
  442. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -60
  443. data/test/rubygems/test_gem_indexer.rb +0 -381
  444. data/test/rubygems/test_gem_install_update_options.rb +0 -208
  445. data/test/rubygems/test_gem_installer.rb +0 -2512
  446. data/test/rubygems/test_gem_local_remote_options.rb +0 -133
  447. data/test/rubygems/test_gem_name_tuple.rb +0 -43
  448. data/test/rubygems/test_gem_package.rb +0 -1306
  449. data/test/rubygems/test_gem_package_old.rb +0 -91
  450. data/test/rubygems/test_gem_package_tar_header.rb +0 -226
  451. data/test/rubygems/test_gem_package_tar_reader.rb +0 -150
  452. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -350
  453. data/test/rubygems/test_gem_package_tar_writer.rb +0 -331
  454. data/test/rubygems/test_gem_package_task.rb +0 -118
  455. data/test/rubygems/test_gem_path_support.rb +0 -139
  456. data/test/rubygems/test_gem_platform.rb +0 -497
  457. data/test/rubygems/test_gem_rdoc.rb +0 -137
  458. data/test/rubygems/test_gem_remote_fetcher.rb +0 -1227
  459. data/test/rubygems/test_gem_request.rb +0 -547
  460. data/test/rubygems/test_gem_request_connection_pools.rb +0 -152
  461. data/test/rubygems/test_gem_request_set.rb +0 -672
  462. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -853
  463. data/test/rubygems/test_gem_request_set_lockfile.rb +0 -469
  464. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -544
  465. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -307
  466. data/test/rubygems/test_gem_requirement.rb +0 -505
  467. data/test/rubygems/test_gem_resolver.rb +0 -859
  468. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -43
  469. data/test/rubygems/test_gem_resolver_api_set.rb +0 -210
  470. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -167
  471. data/test/rubygems/test_gem_resolver_best_set.rb +0 -159
  472. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -44
  473. data/test/rubygems/test_gem_resolver_conflict.rb +0 -82
  474. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -83
  475. data/test/rubygems/test_gem_resolver_git_set.rb +0 -188
  476. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -114
  477. data/test/rubygems/test_gem_resolver_index_set.rb +0 -88
  478. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -93
  479. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -47
  480. data/test/rubygems/test_gem_resolver_installer_set.rb +0 -320
  481. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -44
  482. data/test/rubygems/test_gem_resolver_lock_set.rb +0 -62
  483. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -98
  484. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -19
  485. data/test/rubygems/test_gem_resolver_specification.rb +0 -63
  486. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -82
  487. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -82
  488. data/test/rubygems/test_gem_security.rb +0 -341
  489. data/test/rubygems/test_gem_security_policy.rb +0 -535
  490. data/test/rubygems/test_gem_security_signer.rb +0 -218
  491. data/test/rubygems/test_gem_security_trust_dir.rb +0 -99
  492. data/test/rubygems/test_gem_silent_ui.rb +0 -123
  493. data/test/rubygems/test_gem_source.rb +0 -254
  494. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -37
  495. data/test/rubygems/test_gem_source_git.rb +0 -310
  496. data/test/rubygems/test_gem_source_installed.rb +0 -35
  497. data/test/rubygems/test_gem_source_list.rb +0 -119
  498. data/test/rubygems/test_gem_source_local.rb +0 -107
  499. data/test/rubygems/test_gem_source_lock.rb +0 -113
  500. data/test/rubygems/test_gem_source_specific_file.rb +0 -76
  501. data/test/rubygems/test_gem_source_subpath_problem.rb +0 -50
  502. data/test/rubygems/test_gem_source_vendor.rb +0 -30
  503. data/test/rubygems/test_gem_spec_fetcher.rb +0 -338
  504. data/test/rubygems/test_gem_specification.rb +0 -3856
  505. data/test/rubygems/test_gem_stream_ui.rb +0 -255
  506. data/test/rubygems/test_gem_stub_specification.rb +0 -278
  507. data/test/rubygems/test_gem_text.rb +0 -103
  508. data/test/rubygems/test_gem_uninstaller.rb +0 -675
  509. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -31
  510. data/test/rubygems/test_gem_update_suggestion.rb +0 -209
  511. data/test/rubygems/test_gem_uri.rb +0 -41
  512. data/test/rubygems/test_gem_uri_formatter.rb +0 -27
  513. data/test/rubygems/test_gem_util.rb +0 -91
  514. data/test/rubygems/test_gem_validator.rb +0 -42
  515. data/test/rubygems/test_gem_version.rb +0 -305
  516. data/test/rubygems/test_gem_version_option.rb +0 -165
  517. data/test/rubygems/test_kernel.rb +0 -124
  518. data/test/rubygems/test_project_sanity.rb +0 -49
  519. data/test/rubygems/test_remote_fetch_error.rb +0 -20
  520. data/test/rubygems/test_require.rb +0 -732
  521. data/test/rubygems/test_rubygems.rb +0 -76
  522. data/test/rubygems/test_webauthn_listener.rb +0 -143
  523. data/test/rubygems/test_webauthn_listener_response.rb +0 -93
  524. data/test/rubygems/test_webauthn_poller.rb +0 -124
  525. data/test/rubygems/utilities.rb +0 -436
  526. data/test/rubygems/wrong_key_cert.pem +0 -19
  527. data/test/rubygems/wrong_key_cert_32.pem +0 -19
  528. data/test/test_changelog_generator.rb +0 -17
@@ -1,320 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
-
5
- class TestGemResolverInstallerSet < Gem::TestCase
6
- def test_add_always_install
7
- spec_fetcher do |fetcher|
8
- fetcher.download "a", 1
9
- fetcher.download "a", 2
10
- end
11
-
12
- util_gem "a", 1
13
-
14
- set = Gem::Resolver::InstallerSet.new :both
15
-
16
- set.add_always_install dep("a")
17
-
18
- assert_equal %w[a-2], set.always_install.map {|s| s.full_name }
19
-
20
- e = assert_raise Gem::UnsatisfiableDependencyError do
21
- set.add_always_install dep("b")
22
- end
23
-
24
- assert_equal dep("b"), e.dependency.dependency
25
- end
26
-
27
- def test_add_always_install_errors
28
- @stub_fetcher = Gem::FakeFetcher.new
29
- Gem::RemoteFetcher.fetcher = @stub_fetcher
30
-
31
- set = Gem::Resolver::InstallerSet.new :both
32
-
33
- e = assert_raise Gem::UnsatisfiableDependencyError do
34
- set.add_always_install dep "a"
35
- end
36
-
37
- refute_empty e.errors
38
- end
39
-
40
- def test_add_always_install_platform
41
- spec_fetcher do |fetcher|
42
- fetcher.download "a", 1
43
- fetcher.download "a", 2 do |s|
44
- s.platform = Gem::Platform.new "x86-freebsd-9"
45
- end
46
- end
47
-
48
- set = Gem::Resolver::InstallerSet.new :both
49
-
50
- set.add_always_install dep("a")
51
-
52
- assert_equal %w[a-1], set.always_install.map {|s| s.full_name }
53
- end
54
-
55
- def test_add_always_install_platform_if_gem_platforms_modified_by_platform_flag
56
- freebsd = Gem::Platform.new "x86-freebsd-9"
57
-
58
- spec_fetcher do |fetcher|
59
- fetcher.download "a", 1
60
- fetcher.download "a", 1 do |s|
61
- s.platform = freebsd
62
- end
63
- end
64
-
65
- # equivalent to --platform=x86-freebsd-9
66
- Gem.platforms << freebsd
67
- set = Gem::Resolver::InstallerSet.new :both
68
-
69
- set.add_always_install dep("a")
70
-
71
- assert_equal %w[a-1-x86-freebsd-9], set.always_install.map {|s| s.full_name }
72
- end
73
-
74
- def test_add_always_install_index_spec_platform
75
- _, a_1_local_gem = util_gem "a", 1 do |s|
76
- s.platform = Gem::Platform.local
77
- end
78
-
79
- FileUtils.mv a_1_local_gem, @tempdir
80
-
81
- set = Gem::Resolver::InstallerSet.new :both
82
- set.add_always_install dep("a")
83
-
84
- assert_equal [Gem::Platform.local], set.always_install.map {|s| s.platform }
85
- end
86
-
87
- def test_add_always_install_prerelease
88
- spec_fetcher do |fetcher|
89
- fetcher.gem "a", 1
90
- fetcher.gem "a", "3.a"
91
- end
92
-
93
- set = Gem::Resolver::InstallerSet.new :both
94
-
95
- set.add_always_install dep("a")
96
-
97
- assert_equal %w[a-1], set.always_install.map {|s| s.full_name }
98
- end
99
-
100
- def test_add_always_install_prerelease_github_problem
101
- spec_fetcher do |fetcher|
102
- fetcher.gem "a", 1
103
- end
104
-
105
- # Github has an issue in which it will generate a misleading prerelease output in its RubyGems server API and
106
- # returns a 0 version for the gem while it doesn't exist.
107
- @fetcher.data["#{@gem_repo}prerelease_specs.#{Gem.marshal_version}.gz"] = util_gzip(Marshal.dump([
108
- Gem::NameTuple.new("a", Gem::Version.new(0), "ruby"),
109
- ]))
110
-
111
- set = Gem::Resolver::InstallerSet.new :both
112
-
113
- set.add_always_install dep("a")
114
-
115
- assert_equal %w[a-1], set.always_install.map {|s| s.full_name }
116
- end
117
-
118
- def test_add_always_install_prerelease_only
119
- spec_fetcher do |fetcher|
120
- fetcher.gem "a", "3.a"
121
- end
122
-
123
- set = Gem::Resolver::InstallerSet.new :both
124
-
125
- assert_raise Gem::UnsatisfiableDependencyError do
126
- set.add_always_install dep("a")
127
- end
128
- end
129
-
130
- def test_add_local
131
- a_1, a_1_gem = util_gem "a", 1
132
-
133
- a_1_source = Gem::Source::SpecificFile.new a_1_gem
134
-
135
- set = Gem::Resolver::InstallerSet.new :both
136
-
137
- set.add_local File.basename(a_1_gem), a_1, a_1_source
138
-
139
- assert set.local? File.basename(a_1_gem)
140
-
141
- FileUtils.rm a_1_gem
142
- util_clear_gems
143
-
144
- req = Gem::Resolver::DependencyRequest.new dep("a"), nil
145
-
146
- assert_equal %w[a-1], set.find_all(req).map {|spec| spec.full_name }
147
- end
148
-
149
- def test_consider_local_eh
150
- set = Gem::Resolver::InstallerSet.new :remote
151
-
152
- refute set.consider_local?
153
-
154
- set = Gem::Resolver::InstallerSet.new :both
155
-
156
- assert set.consider_local?
157
-
158
- set = Gem::Resolver::InstallerSet.new :local
159
-
160
- assert set.consider_local?
161
- end
162
-
163
- def test_consider_remote_eh
164
- set = Gem::Resolver::InstallerSet.new :remote
165
-
166
- assert set.consider_remote?
167
-
168
- set = Gem::Resolver::InstallerSet.new :both
169
-
170
- assert set.consider_remote?
171
-
172
- set = Gem::Resolver::InstallerSet.new :local
173
-
174
- refute set.consider_remote?
175
- end
176
-
177
- def test_errors
178
- set = Gem::Resolver::InstallerSet.new :both
179
-
180
- set.instance_variable_get(:@errors) << :a
181
-
182
- req = Gem::Resolver::DependencyRequest.new dep("a"), nil
183
-
184
- set.find_all req
185
-
186
- assert_equal [:a, set.remote_set.errors.first], set.errors
187
- end
188
-
189
- def test_find_all_always_install
190
- spec_fetcher do |fetcher|
191
- fetcher.download "a", 2
192
- end
193
-
194
- util_gem "a", 1
195
-
196
- set = Gem::Resolver::InstallerSet.new :both
197
-
198
- set.add_always_install dep "a"
199
-
200
- req = Gem::Resolver::DependencyRequest.new dep("a"), nil
201
-
202
- assert_equal %w[a-2], set.find_all(req).map {|spec| spec.full_name }
203
- end
204
-
205
- def test_find_all_prerelease
206
- spec_fetcher do |fetcher|
207
- fetcher.download "a", "1"
208
- fetcher.download "a", "1.a"
209
- end
210
-
211
- set = Gem::Resolver::InstallerSet.new :both
212
-
213
- req = Gem::Resolver::DependencyRequest.new dep("a"), nil
214
-
215
- assert_equal %w[a-1], set.find_all(req).map {|spec| spec.full_name }
216
-
217
- req = Gem::Resolver::DependencyRequest.new dep("a", ">= 0.a"), nil
218
-
219
- assert_equal %w[a-1 a-1.a],
220
- set.find_all(req).map {|spec| spec.full_name }.sort
221
- end
222
-
223
- def test_find_all_prerelease_dependencies_with_add_local
224
- activesupport_7_1_0_alpha = util_spec "activesupport", "7.1.0.alpha"
225
-
226
- install_gem activesupport_7_1_0_alpha
227
-
228
- set = Gem::Resolver::InstallerSet.new :both
229
-
230
- req = Gem::Resolver::DependencyRequest.new dep("activesupport", ">= 4.2.0"), nil
231
-
232
- assert_equal %w[activesupport-7.1.0.alpha], set.find_all(req).map {|spec| spec.full_name }
233
- end
234
-
235
- def test_load_spec
236
- specs = spec_fetcher do |fetcher|
237
- fetcher.spec "a", 2
238
- fetcher.spec "a", 2 do |s|
239
- s.platform = Gem::Platform.local
240
- end
241
- end
242
-
243
- source = Gem::Source.new @gem_repo
244
- version = v 2
245
-
246
- set = Gem::Resolver::InstallerSet.new :remote
247
-
248
- spec = set.load_spec "a", version, Gem::Platform.local, source
249
-
250
- assert_equal specs["a-2-#{Gem::Platform.local}"].full_name, spec.full_name
251
- end
252
-
253
- def test_prefetch
254
- set = Gem::Resolver::InstallerSet.new :remote
255
- def (set.remote_set).prefetch(_)
256
- raise "called"
257
- end
258
- assert_raise(RuntimeError) { set.prefetch(nil) }
259
-
260
- set = Gem::Resolver::InstallerSet.new :local
261
- def (set.remote_set).prefetch(_)
262
- raise "called"
263
- end
264
- assert_nil set.prefetch(nil)
265
- end
266
-
267
- def test_prerelease_equals
268
- set = Gem::Resolver::InstallerSet.new :remote
269
-
270
- refute set.prerelease
271
- refute set.remote_set.prerelease
272
-
273
- set.prerelease = true
274
-
275
- assert set.prerelease
276
- assert set.remote_set.prerelease
277
- end
278
-
279
- def test_remote_equals_both
280
- set = Gem::Resolver::InstallerSet.new :both
281
- set.remote = true
282
-
283
- assert set.consider_local?
284
- assert set.consider_remote?
285
-
286
- set = Gem::Resolver::InstallerSet.new :both
287
- set.remote = false
288
-
289
- assert set.consider_local?
290
- refute set.consider_remote?
291
- end
292
-
293
- def test_remote_equals_local
294
- set = Gem::Resolver::InstallerSet.new :local
295
- set.remote = true
296
-
297
- assert set.consider_local?
298
- assert set.consider_remote?
299
-
300
- set = Gem::Resolver::InstallerSet.new :local
301
- set.remote = false
302
-
303
- assert set.consider_local?
304
- refute set.consider_remote?
305
- end
306
-
307
- def test_remote_equals_remote
308
- set = Gem::Resolver::InstallerSet.new :remote
309
- set.remote = true
310
-
311
- refute set.consider_local?
312
- assert set.consider_remote?
313
-
314
- set = Gem::Resolver::InstallerSet.new :remote
315
- set.remote = false
316
-
317
- refute set.consider_local?
318
- refute set.consider_remote?
319
- end
320
- end
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/available_set"
5
-
6
- class TestGemResolverLocalSpecification < Gem::TestCase
7
- def setup
8
- super
9
-
10
- @set = Gem::AvailableSet.new
11
- end
12
-
13
- def test_install
14
- specs = spec_fetcher do |fetcher|
15
- fetcher.gem "a", 2
16
- end
17
-
18
- source = Gem::Source::SpecificFile.new "gems/a-2.gem"
19
-
20
- spec = Gem::Resolver::LocalSpecification.new @set, specs["a-2"], source
21
-
22
- called = false
23
-
24
- spec.install({}) do |installer|
25
- called = installer
26
- end
27
-
28
- assert_path_exist File.join @gemhome, "specifications", "a-2.gemspec"
29
-
30
- assert_kind_of Gem::Installer, called
31
- end
32
-
33
- def test_installable_platform_eh
34
- b, b_gem = util_gem "a", 1 do |s|
35
- s.platform = Gem::Platform.new %w[cpu other_platform 1]
36
- end
37
-
38
- source = Gem::Source::SpecificFile.new b_gem
39
-
40
- b_spec = Gem::Resolver::InstalledSpecification.new @set, b, source
41
-
42
- assert b_spec.installable_platform?
43
- end
44
- end
@@ -1,62 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
-
5
- class TestGemResolverLockSet < Gem::TestCase
6
- def setup
7
- super
8
-
9
- @sources = [Gem::Source.new(@gem_repo)]
10
- @lock_source = Gem::Source::Lock.new @sources.first
11
-
12
- @set = Gem::Resolver::LockSet.new @sources
13
- end
14
-
15
- def test_add
16
- specs = @set.add "a", "2", Gem::Platform::RUBY
17
- spec = specs.first
18
-
19
- assert_equal %w[a-2], @set.specs.map {|t| t.full_name }
20
-
21
- assert_kind_of Gem::Resolver::LockSpecification, spec
22
-
23
- assert_equal @set, spec.set
24
- assert_equal "a", spec.name
25
- assert_equal v(2), spec.version
26
- assert_equal Gem::Platform::RUBY, spec.platform
27
- assert_equal @lock_source, spec.source
28
- end
29
-
30
- def test_find_all
31
- @set.add "a", "1.a", Gem::Platform::RUBY
32
- @set.add "a", "2", Gem::Platform::RUBY
33
- @set.add "b", "2", Gem::Platform::RUBY
34
-
35
- found = @set.find_all dep "a"
36
-
37
- assert_equal %w[a-2], found.map {|s| s.full_name }
38
-
39
- found = @set.find_all dep "a", ">= 0.a"
40
-
41
- assert_equal %w[a-1.a a-2], found.map {|s| s.full_name }
42
- end
43
-
44
- def test_load_spec
45
- spec_fetcher do |fetcher|
46
- fetcher.spec "a", 2
47
- end
48
-
49
- version = v(2)
50
- @set.add "a", version, Gem::Platform::RUBY
51
-
52
- loaded = @set.load_spec "a", version, Gem::Platform::RUBY, nil
53
-
54
- assert_kind_of Gem::Specification, loaded
55
-
56
- assert_equal "a-2", loaded.full_name
57
- end
58
-
59
- def test_prefetch
60
- assert_respond_to @set, :prefetch
61
- end
62
- end
@@ -1,98 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/installer"
5
- require "rubygems/resolver"
6
-
7
- class TestGemResolverLockSpecification < Gem::TestCase
8
- def setup
9
- super
10
-
11
- @LS = Gem::Resolver::LockSpecification
12
-
13
- @source = Gem::Source.new @gem_repo
14
- @set = Gem::Resolver::LockSet.new [@source]
15
- end
16
-
17
- def test_initialize
18
- spec = @LS.new @set, "a", v(2), [@source], Gem::Platform::RUBY
19
-
20
- assert_equal "a", spec.name
21
- assert_equal v(2), spec.version
22
- assert_equal Gem::Platform::RUBY, spec.platform
23
-
24
- assert_equal @source, spec.source
25
- end
26
-
27
- def test_add_dependency
28
- l_spec = @LS.new @set, "a", v(2), [@source], Gem::Platform::RUBY
29
-
30
- b_dep = dep("b", ">= 0")
31
-
32
- l_spec.add_dependency b_dep
33
-
34
- assert_equal [b_dep], l_spec.dependencies
35
- end
36
-
37
- def test_install
38
- spec_fetcher do |fetcher|
39
- fetcher.download "a", 2
40
- end
41
-
42
- spec = @LS.new @set, "a", v(2), [@source], Gem::Platform::RUBY
43
-
44
- called = false
45
-
46
- spec.install({}) do |installer|
47
- called = installer
48
- end
49
-
50
- refute_nil called
51
- end
52
-
53
- def test_install_installed
54
- spec = @LS.new @set, "a", v(2), [@source], Gem::Platform::RUBY
55
-
56
- FileUtils.touch File.join(@gemhome, "specifications", spec.spec.spec_name)
57
-
58
- called = false
59
-
60
- spec.install({}) do |installer|
61
- called = installer
62
- end
63
-
64
- assert_nil called
65
- end
66
-
67
- def test_spec
68
- version = v(2)
69
-
70
- l_spec = @LS.new @set, "a", version, [@source], Gem::Platform::RUBY
71
-
72
- b_dep = dep "b", ">= 0"
73
- c_dep = dep "c", "~> 1"
74
-
75
- l_spec.add_dependency b_dep
76
- l_spec.add_dependency c_dep
77
-
78
- spec = l_spec.spec
79
-
80
- assert_equal "a", spec.name
81
- assert_equal version, spec.version
82
- assert_equal Gem::Platform::RUBY, spec.platform
83
-
84
- assert_equal [b_dep, c_dep], l_spec.spec.dependencies
85
- end
86
-
87
- def test_spec_loaded
88
- real_spec = util_spec "a", 2
89
- install_specs real_spec
90
- real_spec.activate
91
-
92
- version = v(2)
93
-
94
- l_spec = @LS.new @set, "a", version, [@source], Gem::Platform::RUBY
95
-
96
- assert_same real_spec, l_spec.spec
97
- end
98
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
-
5
- class TestGemResolverRequirementList < Gem::TestCase
6
- def setup
7
- super
8
-
9
- @list = Gem::Resolver::RequirementList.new
10
- end
11
-
12
- def test_each
13
- dep = Gem::Dependency.new "a", "= 1"
14
- req = Gem::Resolver::DependencyRequest.new(dep, nil)
15
- @list.add req
16
-
17
- assert_equal [req], @list.each.to_a
18
- end
19
- end
@@ -1,63 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
-
5
- class TestGemResolverSpecification < Gem::TestCase
6
- class TestSpec < Gem::Resolver::Specification
7
- attr_writer :source
8
- attr_reader :spec
9
-
10
- def initialize(spec)
11
- super()
12
-
13
- @spec = spec
14
- end
15
- end
16
-
17
- def test_install
18
- gemhome = "#{@gemhome}2"
19
- spec_fetcher do |fetcher|
20
- fetcher.gem "a", 1
21
- end
22
-
23
- a = util_spec "a", 1
24
-
25
- a_spec = TestSpec.new a
26
- a_spec.source = Gem::Source.new @gem_repo
27
-
28
- a_spec.install :install_dir => gemhome
29
-
30
- assert_path_exist File.join gemhome, "gems", a.full_name
31
-
32
- expected = File.join gemhome, "specifications", a.spec_name
33
-
34
- assert_equal expected, a_spec.spec.loaded_from
35
- end
36
-
37
- def test_installable_platform_eh
38
- a = util_spec "a", 1
39
-
40
- a_spec = TestSpec.new a
41
-
42
- assert a_spec.installable_platform?
43
-
44
- b = util_spec "a", 1 do |s|
45
- s.platform = Gem::Platform.new %w[cpu other_platform 1]
46
- end
47
-
48
- b_spec = TestSpec.new b
49
-
50
- refute b_spec.installable_platform?
51
- end
52
-
53
- def test_source
54
- a = util_spec "a", 1
55
-
56
- source = Gem::Source.new @gem_repo
57
-
58
- a_spec = TestSpec.new a
59
- a_spec.source = source
60
-
61
- assert_equal source, a_spec.source
62
- end
63
- end
@@ -1,82 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
-
5
- class TestGemResolverVendorSet < Gem::TestCase
6
- def setup
7
- super
8
-
9
- @set = Gem::Resolver::VendorSet.new
10
- end
11
-
12
- def test_add_vendor_gem
13
- name, version, directory = vendor_gem
14
-
15
- added = @set.add_vendor_gem name, directory
16
-
17
- spec = @set.load_spec name, version, Gem::Platform::RUBY, nil
18
-
19
- assert_equal spec, added
20
-
21
- assert_equal "#{name}-#{version}", spec.full_name
22
-
23
- assert_equal File.expand_path(directory), spec.full_gem_path
24
- end
25
-
26
- def test_add_vendor_gem_missing
27
- name, _, directory = vendor_gem
28
-
29
- FileUtils.rm_r directory
30
-
31
- e = assert_raise Gem::GemNotFoundException do
32
- @set.add_vendor_gem name, directory
33
- end
34
-
35
- assert_equal "unable to find #{directory}/#{name}.gemspec for gem #{name}",
36
- e.message
37
- end
38
-
39
- def test_find_all
40
- name, version, directory = vendor_gem
41
-
42
- @set.add_vendor_gem name, directory
43
-
44
- dependency = dep "a", "~> 1"
45
-
46
- req = Gem::Resolver::DependencyRequest.new dependency, nil
47
-
48
- found = @set.find_all req
49
-
50
- spec = @set.load_spec name, version, Gem::Platform::RUBY, nil
51
-
52
- source = Gem::Source::Vendor.new directory
53
-
54
- expected = [
55
- Gem::Resolver::VendorSpecification.new(@set, spec, source),
56
- ]
57
-
58
- assert_equal expected, found
59
- end
60
-
61
- def test_find_all_prerelease
62
- name, _, directory = vendor_gem "a", "1.a"
63
-
64
- @set.add_vendor_gem name, directory
65
-
66
- req = Gem::Resolver::DependencyRequest.new dep("a"), nil
67
-
68
- assert_empty @set.find_all req
69
-
70
- req = Gem::Resolver::DependencyRequest.new dep("a", ">= 0.a"), nil
71
-
72
- refute_empty @set.find_all req
73
- end
74
-
75
- def test_load_spec
76
- error = Object.const_defined?(:KeyError) ? KeyError : IndexError
77
-
78
- assert_raise error do
79
- @set.load_spec "b", v(1), Gem::Platform::RUBY, nil
80
- end
81
- end
82
- end