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,113 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
-
5
- class TestGemSourceLock < Gem::TestCase
6
- def test_fetch_spec
7
- spec_fetcher do |fetcher|
8
- fetcher.spec "a", 1
9
- end
10
-
11
- name_tuple = Gem::NameTuple.new "a", v(1), "ruby"
12
-
13
- remote = Gem::Source.new @gem_repo
14
- lock = Gem::Source::Lock.new remote
15
-
16
- spec = lock.fetch_spec name_tuple
17
-
18
- assert_equal "a-1", spec.full_name
19
- end
20
-
21
- def test_equals2
22
- git = Gem::Source::Git.new "a", "git/a", nil, false
23
- g_lock = Gem::Source::Lock.new git
24
-
25
- installed = Gem::Source::Installed.new
26
- i_lock = Gem::Source::Lock.new installed
27
-
28
- assert_equal g_lock, g_lock
29
- refute_equal g_lock, i_lock
30
- refute_equal g_lock, Object.new
31
- end
32
-
33
- def test_spaceship
34
- git = Gem::Source::Git.new "a", "git/a", nil, false
35
- g_lock = Gem::Source::Lock.new git
36
-
37
- installed = Gem::Source::Installed.new
38
- i_lock = Gem::Source::Lock.new installed
39
-
40
- vendor = Gem::Source::Vendor.new "vendor/a"
41
- v_lock = Gem::Source::Lock.new vendor
42
-
43
- assert_equal(0, g_lock.<=>(g_lock), "g_lock <=> g_lock")
44
- assert_equal(0, i_lock.<=>(i_lock), "i_lock <=> i_lock")
45
- assert_equal(0, v_lock.<=>(v_lock), "v_lock <=> v_lock")
46
-
47
- assert_equal(1, g_lock.<=>(i_lock), "g_lock <=> i_lock")
48
- assert_equal(-1, i_lock.<=>(g_lock), "i_lock <=> g_lock")
49
-
50
- assert_equal(-1, g_lock.<=>(v_lock), "g_lock <=> v_lock")
51
- assert_equal(1, v_lock.<=>(g_lock), "v_lock <=> g_lock")
52
-
53
- assert_equal(-1, i_lock.<=>(v_lock), "i_lock <=> v_lock")
54
- assert_equal(1, v_lock.<=>(i_lock), "i_lock <=> v_lock")
55
- end
56
-
57
- def test_spaceship_git
58
- git = Gem::Source::Git.new "a", "git/a", nil, false
59
- lock = Gem::Source::Lock.new git
60
-
61
- assert_equal(1, lock.<=>(git), "lock <=> git")
62
- assert_equal(-1, git.<=>(lock), "git <=> lock")
63
- end
64
-
65
- def test_spaceship_installed
66
- installed = Gem::Source::Installed.new
67
- lock = Gem::Source::Lock.new installed
68
-
69
- assert_equal(1, lock.<=>(installed), "lock <=> installed")
70
- assert_equal(-1, installed.<=>(lock), "installed <=> lock")
71
- end
72
-
73
- def test_spaceship_local
74
- local = Gem::Source::Local.new
75
- lock = Gem::Source::Lock.new local # nonsense
76
-
77
- assert_equal(1, lock.<=>(local), "lock <=> local")
78
- assert_equal(-1, local.<=>(lock), "local <=> lock")
79
- end
80
-
81
- def test_spaceship_remote
82
- remote = Gem::Source.new @gem_repo
83
- lock = Gem::Source::Lock.new remote
84
-
85
- assert_equal(1, lock.<=>(remote), "lock <=> remote")
86
- assert_equal(-1, remote.<=>(lock), "remote <=> lock")
87
- end
88
-
89
- def test_spaceship_specific_file
90
- _, gem = util_gem "a", 1
91
-
92
- specific = Gem::Source::SpecificFile.new gem
93
- lock = Gem::Source::Lock.new specific # nonsense
94
-
95
- assert_equal(1, lock.<=>(specific), "lock <=> specific")
96
- assert_equal(-1, specific.<=>(lock), "specific <=> lock")
97
- end
98
-
99
- def test_spaceship_vendor
100
- vendor = Gem::Source::Vendor.new "vendor/a"
101
- lock = Gem::Source::Lock.new vendor
102
-
103
- assert_equal(1, lock.<=>(vendor), "lock <=> vendor")
104
- assert_equal(-1, vendor.<=>(lock), "vendor <=> lock")
105
- end
106
-
107
- def test_uri
108
- remote = Gem::Source.new @gem_repo
109
- lock = Gem::Source::Lock.new remote
110
-
111
- assert_equal URI(@gem_repo), lock.uri
112
- end
113
- end
@@ -1,76 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/source"
5
-
6
- class TestGemSourceSpecificFile < Gem::TestCase
7
- def setup
8
- super
9
-
10
- @a, @a_gem = util_gem "a", "1"
11
- @sf = Gem::Source::SpecificFile.new(@a_gem)
12
- end
13
-
14
- def test_path
15
- assert_equal @a_gem, @sf.path
16
- end
17
-
18
- def test_spec
19
- assert_equal @a, @sf.spec
20
- end
21
-
22
- def test_load_specs
23
- assert_equal [@a.name_tuple], @sf.load_specs
24
- end
25
-
26
- def test_fetch_spec
27
- assert_equal @a, @sf.fetch_spec(@a.name_tuple)
28
- end
29
-
30
- def test_fetch_spec_fails_on_unknown_name
31
- assert_raise Gem::Exception do
32
- @sf.fetch_spec(nil)
33
- end
34
- end
35
-
36
- def test_download
37
- assert_equal @a_gem, @sf.download(@a)
38
- end
39
-
40
- def test_spaceship
41
- a1 = quick_gem "a", "1"
42
- util_build_gem a1
43
-
44
- remote = Gem::Source.new @gem_repo
45
- specific = Gem::Source::SpecificFile.new a1.cache_file
46
- installed = Gem::Source::Installed.new
47
- local = Gem::Source::Local.new
48
-
49
- assert_equal(0, specific.<=>(specific), "specific <=> specific")
50
-
51
- assert_equal(-1, remote.<=>(specific), "remote <=> specific")
52
- assert_equal(1, specific.<=>(remote), "specific <=> remote")
53
-
54
- assert_equal(-1, specific.<=>(local), "specific <=> local")
55
- assert_equal(1, local. <=>(specific), "local <=> specific")
56
-
57
- assert_equal(-1, specific. <=>(installed), "specific <=> installed")
58
- assert_equal(1, installed.<=>(specific), "installed <=> specific")
59
-
60
- a2 = quick_gem "a", "2"
61
- util_build_gem a2
62
-
63
- b1 = quick_gem "b", "1"
64
- util_build_gem b1
65
-
66
- a1_source = specific
67
- a2_source = Gem::Source::SpecificFile.new a2.cache_file
68
- b1_source = Gem::Source::SpecificFile.new b1.cache_file
69
-
70
- assert_nil a1_source.<=>(b1_source), "a1_source <=> b1_source"
71
-
72
- assert_equal(-1, a1_source.<=>(a2_source), "a1_source <=> a2_source")
73
- assert_equal(0, a1_source.<=>(a1_source), "a1_source <=> a1_source")
74
- assert_equal(1, a2_source.<=>(a1_source), "a2_source <=> a1_source")
75
- end
76
- end
@@ -1,50 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/source"
5
-
6
- class TestGemSourceSubpathProblem < Gem::TestCase
7
- def tuple(*args)
8
- Gem::NameTuple.new(*args)
9
- end
10
-
11
- def setup
12
- super
13
-
14
- @gem_repo = "http://gems.example.com/private"
15
-
16
- spec_fetcher
17
-
18
- @source = Gem::Source.new(@gem_repo)
19
-
20
- util_make_gems
21
- end
22
-
23
- def test_dependency_resolver_set
24
- response = Net::HTTPResponse.new "1.1", 200, "OK"
25
- response.uri = URI("http://example")
26
-
27
- @fetcher.data["#{@gem_repo}/"] = response
28
-
29
- set = @source.dependency_resolver_set
30
-
31
- assert_kind_of Gem::Resolver::APISet, set
32
- end
33
-
34
- def test_fetch_spec
35
- @fetcher.data["#{@gem_repo}/#{Gem::MARSHAL_SPEC_DIR}#{@a1.spec_name}.rz"] = Zlib::Deflate.deflate(Marshal.dump(@a1))
36
-
37
- spec = @source.fetch_spec tuple("a", Gem::Version.new(1), "ruby")
38
- assert_equal @a1.full_name, spec.full_name
39
- end
40
-
41
- def test_load_specs
42
- @fetcher.data["#{@gem_repo}/latest_specs.#{Gem.marshal_version}.gz"] = util_gzip(Marshal.dump([
43
- Gem::NameTuple.new(@a1.name, @a1.version, "ruby"),
44
- Gem::NameTuple.new(@b2.name, @b2.version, "ruby"),
45
- ]))
46
-
47
- released = @source.load_specs(:latest).map {|spec| spec.full_name }
48
- assert_equal %W[a-1 b-2], released
49
- end
50
- end
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/source"
5
-
6
- class TestGemSourceVendor < Gem::TestCase
7
- def test_initialize
8
- source = Gem::Source::Vendor.new "vendor/foo"
9
-
10
- assert_equal "vendor/foo", source.uri
11
- end
12
-
13
- def test_spaceship
14
- vendor = Gem::Source::Vendor.new "vendor/foo"
15
- remote = Gem::Source.new @gem_repo
16
- git = Gem::Source::Git.new "a", "a", nil
17
- installed = Gem::Source::Installed.new
18
-
19
- assert_equal(0, vendor.<=>(vendor), "vendor <=> vendor")
20
-
21
- assert_equal(1, vendor.<=>(remote), "vendor <=> remote")
22
- assert_equal(-1, remote.<=>(vendor), "remote <=> vendor")
23
-
24
- assert_equal(1, vendor.<=>(git), "vendor <=> git")
25
- assert_equal(-1, git.<=>(vendor), "git <=> vendor")
26
-
27
- assert_equal(1, vendor.<=>(installed), "vendor <=> installed")
28
- assert_equal(-1, installed.<=>(vendor), "installed <=> vendor")
29
- end
30
- end
@@ -1,338 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/spec_fetcher"
5
-
6
- class TestGemSpecFetcher < Gem::TestCase
7
- def tuple(*args)
8
- Gem::NameTuple.new(*args)
9
- end
10
-
11
- def setup
12
- super
13
-
14
- @uri = URI.parse @gem_repo
15
- @source = Gem::Source.new(@uri)
16
-
17
- @sf = Gem::SpecFetcher.new
18
- end
19
-
20
- def test_initialize
21
- fetcher = Gem::SpecFetcher.new
22
-
23
- assert_same Gem.sources, fetcher.sources
24
- end
25
-
26
- def test_initialize_source
27
- alternate = "http://alternate.example"
28
- fetcher = Gem::SpecFetcher.new alternate
29
-
30
- refute_same Gem.sources, fetcher.sources
31
-
32
- assert_equal alternate, fetcher.sources
33
- end
34
-
35
- def test_initialize_nonexistent_home_dir
36
- FileUtils.rmdir Gem.user_home
37
-
38
- assert Gem::SpecFetcher.new
39
- end
40
-
41
- def test_initialize_unwritable_home_dir
42
- pend "chmod not supported" if Gem.win_platform?
43
-
44
- FileUtils.chmod 0o000, Gem.user_home
45
-
46
- begin
47
- assert Gem::SpecFetcher.new
48
- ensure
49
- FileUtils.chmod 0o755, Gem.user_home
50
- end
51
- end
52
-
53
- def test_spec_for_dependency_all
54
- spec_fetcher do |fetcher|
55
- fetcher.spec "a", 1
56
- fetcher.spec "a", "2.a"
57
- fetcher.spec "a", 2
58
- fetcher.spec "a", "3.a"
59
- end
60
-
61
- dep = Gem::Dependency.new "a", ">= 1"
62
-
63
- specs_and_sources, _ = @sf.spec_for_dependency dep
64
-
65
- spec_names = specs_and_sources.map do |spec, source_uri|
66
- [spec.full_name, source_uri]
67
- end
68
-
69
- expected = [["a-1", @source], ["a-2", @source]]
70
-
71
- assert_equal expected, spec_names
72
-
73
- assert_same specs_and_sources.first.last, specs_and_sources.last.last
74
- end
75
-
76
- def test_spec_for_dependency_latest
77
- spec_fetcher do |fetcher|
78
- fetcher.spec "a", 1
79
- fetcher.spec "a", 2
80
- fetcher.spec "a", "3.a"
81
- end
82
-
83
- dep = Gem::Dependency.new "a"
84
- specs_and_sources, _ = @sf.spec_for_dependency dep
85
-
86
- spec_names = specs_and_sources.map do |spec, source_uri|
87
- [spec.full_name, source_uri]
88
- end
89
-
90
- assert_equal [["a-2", Gem::Source.new(@gem_repo)]],
91
- spec_names
92
- end
93
-
94
- def test_spec_for_dependency_prerelease
95
- spec_fetcher do |fetcher|
96
- fetcher.spec "a", "1.a"
97
- fetcher.spec "a", 1
98
- end
99
-
100
- specs_and_sources, _ = @sf.spec_for_dependency dep("a", "1.a")
101
-
102
- spec_names = specs_and_sources.map do |spec, source_uri|
103
- [spec.full_name, source_uri]
104
- end
105
-
106
- assert_equal [["a-1.a", Gem::Source.new(@gem_repo)]], spec_names
107
- end
108
-
109
- def test_spec_for_dependency_platform
110
- util_set_arch "i386-linux"
111
-
112
- spec_fetcher do |fetcher|
113
- fetcher.legacy_platform
114
- end
115
-
116
- dep = Gem::Dependency.new "pl", 1
117
- specs_and_sources, _ = @sf.spec_for_dependency dep
118
-
119
- spec_names = specs_and_sources.map do |spec, source_uri|
120
- [spec.full_name, source_uri]
121
- end
122
-
123
- assert_equal [["pl-1-x86-linux", Gem::Source.new(@gem_repo)]],
124
- spec_names
125
- end
126
-
127
- def test_spec_for_dependency_mismatched_platform
128
- util_set_arch "hrpa-989"
129
-
130
- spec_fetcher do |fetcher|
131
- fetcher.legacy_platform
132
- end
133
-
134
- dep = Gem::Dependency.new "pl", 1
135
- specs_and_sources, errors = @sf.spec_for_dependency dep
136
-
137
- assert_equal 0, specs_and_sources.size
138
- assert_equal 1, errors.size
139
- pmm = errors.first
140
-
141
- assert_equal "i386-linux", pmm.platforms.first
142
- assert_equal "Found pl (1), but was for platform i386-linux", pmm.wordy
143
- end
144
-
145
- def test_spec_for_dependency_bad_fetch_spec
146
- src = Gem::Source.new(@gem_repo)
147
- def src.fetch_spec(name)
148
- raise Gem::RemoteFetcher::FetchError.new("bad news from the internet", @uri)
149
- end
150
-
151
- Gem.sources.replace [src]
152
-
153
- spec_fetcher do |fetcher|
154
- fetcher.spec "a", 1
155
- fetcher.spec "a", "2.a"
156
- fetcher.spec "a", 2
157
- fetcher.spec "a", "3.a"
158
- end
159
-
160
- dep = Gem::Dependency.new "a", ">= 1"
161
-
162
- specs_and_sources, errors = @sf.spec_for_dependency dep
163
-
164
- assert_equal [], specs_and_sources
165
- sfp = errors.first
166
-
167
- assert_kind_of Gem::SourceFetchProblem, sfp
168
- assert_equal src, sfp.source
169
- assert_equal "bad news from the internet (#{@gem_repo})", sfp.error.message
170
- end
171
-
172
- def test_suggest_gems_from_name_latest
173
- spec_fetcher do|fetcher|
174
- fetcher.spec "example", 1
175
- fetcher.spec "other-example", 1
176
- fetcher.spec "examp", 1
177
- end
178
-
179
- suggestions = @sf.suggest_gems_from_name("examplw", :latest, 1)
180
- assert_equal ["example"], suggestions
181
-
182
- suggestions = @sf.suggest_gems_from_name("other")
183
- assert_equal ["other-example"], suggestions
184
-
185
- suggestions = @sf.suggest_gems_from_name("exam")
186
- assert suggestions.any? { ["examp"] }
187
- assert suggestions.any? { ["example"] }
188
- assert suggestions.any? { ["other-example"] }
189
- end
190
-
191
- def test_suggest_gems_from_name_prerelease
192
- spec_fetcher do|fetcher|
193
- fetcher.spec "example", "1.a"
194
- fetcher.spec "other-example", 1
195
- end
196
-
197
- suggestions = @sf.suggest_gems_from_name("examplw")
198
- assert_equal ["example"], suggestions
199
- end
200
-
201
- def test_available_specs_latest
202
- spec_fetcher do |fetcher|
203
- fetcher.spec "a", 1
204
- fetcher.spec "a", 2
205
- fetcher.spec "a", "3.a"
206
- fetcher.legacy_platform
207
- end
208
-
209
- specs, _ = @sf.available_specs(:latest)
210
-
211
- assert_equal [@source], specs.keys
212
-
213
- expected = Gem::NameTuple.from_list \
214
- [["a", v(2), Gem::Platform::RUBY],
215
- ["pl", v(1), "i386-linux"]]
216
-
217
- assert_equal expected, specs[@source]
218
- end
219
-
220
- def test_available_specs_released
221
- spec_fetcher do |fetcher|
222
- fetcher.spec "a", 1
223
- fetcher.legacy_platform
224
- end
225
-
226
- specs, _ = @sf.available_specs(:released)
227
-
228
- assert_equal [@source], specs.keys
229
-
230
- expected = Gem::NameTuple.from_list \
231
- [["a", v(1), Gem::Platform::RUBY],
232
- ["pl", v(1), "i386-linux"]]
233
-
234
- assert_equal expected, specs[@source]
235
- end
236
-
237
- def test_available_specs_complete
238
- spec_fetcher do |fetcher|
239
- fetcher.spec "a", 1
240
- fetcher.spec "a", "2.a"
241
- fetcher.spec "b", 2
242
- fetcher.legacy_platform
243
- end
244
-
245
- specs, _ = @sf.available_specs(:complete)
246
-
247
- assert_equal [@source], specs.keys
248
-
249
- expected = Gem::NameTuple.from_list \
250
- [["a", v(1), Gem::Platform::RUBY],
251
- ["a", v("2.a"), Gem::Platform::RUBY],
252
- ["b", v(2), Gem::Platform::RUBY],
253
- ["pl", v(1), "i386-linux"]]
254
-
255
- assert_equal expected, specs[@source]
256
- end
257
-
258
- def test_available_specs_complete_handles_no_prerelease
259
- spec_fetcher do |fetcher|
260
- fetcher.spec "a", 1
261
- fetcher.spec "a", "2.a"
262
- fetcher.spec "b", 2
263
- fetcher.legacy_platform
264
- end
265
-
266
- v = Gem.marshal_version
267
- @fetcher.data.delete "#{@gem_repo}prerelease_specs.#{v}.gz"
268
-
269
- specs, _ = @sf.available_specs(:complete)
270
-
271
- assert_equal [@source], specs.keys
272
-
273
- expected = Gem::NameTuple.from_list \
274
- [["a", v(1), Gem::Platform::RUBY],
275
- ["b", v(2), Gem::Platform::RUBY],
276
- ["pl", v(1), "i386-linux"]]
277
-
278
- assert_equal expected, specs[@source]
279
- end
280
-
281
- def test_available_specs_cache
282
- spec_fetcher do |fetcher|
283
- fetcher.spec "a", 1
284
- end
285
-
286
- specs, _ = @sf.available_specs(:latest)
287
-
288
- refute specs[@source].empty?
289
-
290
- @fetcher.data["#{@gem_repo}/latest_specs.#{Gem.marshal_version}.gz"] = nil
291
-
292
- cached_specs, _ = @sf.available_specs(:latest)
293
-
294
- assert_equal specs, cached_specs
295
- end
296
-
297
- def test_available_specs_cache_released
298
- spec_fetcher do |fetcher|
299
- fetcher.spec "a", 1
300
- fetcher.spec "a", "2.a"
301
- fetcher.spec "b", 2
302
- fetcher.legacy_platform
303
- end
304
-
305
- specs, _ = @sf.available_specs(:released)
306
-
307
- refute specs[@source].empty?
308
-
309
- @fetcher.data["#{@gem_repo}/specs.#{Gem.marshal_version}.gz"] = nil
310
-
311
- cached_specs, _ = @sf.available_specs(:released)
312
-
313
- assert_equal specs, cached_specs
314
- end
315
-
316
- def test_available_specs_prerelease
317
- spec_fetcher do |fetcher|
318
- fetcher.spec "a", 1
319
- fetcher.spec "a", "2.a"
320
- end
321
-
322
- specs, _ = @sf.available_specs(:prerelease)
323
-
324
- expected = Gem::NameTuple.from_list \
325
- [["a", v("2.a"), Gem::Platform::RUBY]]
326
-
327
- assert_equal expected, specs[@source]
328
- end
329
-
330
- def test_available_specs_with_bad_source
331
- Gem.sources.replace ["http://not-there.nothing"]
332
-
333
- specs, errors = @sf.available_specs(:latest)
334
-
335
- assert_equal({}, specs)
336
- assert_kind_of Gem::SourceFetchProblem, errors.first
337
- end
338
- end