rubygems-update 3.4.22 → 3.5.1

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 (540) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +105 -2
  3. data/Manifest.txt +46 -221
  4. data/README.md +1 -3
  5. data/bundler/CHANGELOG.md +63 -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 +254 -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 +46 -30
  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/.document +1 -0
  134. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  135. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +53 -6
  136. data/bundler/lib/bundler/vendor/fileutils/.document +1 -0
  137. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +8 -20
  138. data/bundler/lib/bundler/vendor/net-http-persistent/.document +1 -0
  139. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +3 -3
  140. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +2 -2
  141. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
  142. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +34 -34
  143. data/bundler/lib/bundler/vendor/pub_grub/.document +1 -0
  144. data/bundler/lib/bundler/vendor/thor/.document +1 -0
  145. data/bundler/lib/bundler/vendor/tsort/.document +1 -0
  146. data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +3 -0
  147. data/bundler/lib/bundler/vendor/uri/.document +1 -0
  148. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +256 -132
  149. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1 -0
  150. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +95 -31
  151. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  152. data/bundler/lib/bundler/vendored_net_http.rb +8 -0
  153. data/bundler/lib/bundler/vendored_persistent.rb +0 -4
  154. data/bundler/lib/bundler/vendored_timeout.rb +8 -0
  155. data/bundler/lib/bundler/version.rb +1 -1
  156. data/bundler/lib/bundler/vlad.rb +1 -1
  157. data/bundler/lib/bundler/yaml_serializer.rb +3 -3
  158. data/bundler/lib/bundler.rb +41 -32
  159. data/lib/rubygems/available_set.rb +4 -4
  160. data/lib/rubygems/basic_specification.rb +35 -37
  161. data/lib/rubygems/bundler_version_finder.rb +4 -4
  162. data/lib/rubygems/ci_detector.rb +75 -0
  163. data/lib/rubygems/command.rb +13 -15
  164. data/lib/rubygems/command_manager.rb +5 -4
  165. data/lib/rubygems/commands/build_command.rb +2 -2
  166. data/lib/rubygems/commands/cert_command.rb +1 -2
  167. data/lib/rubygems/commands/check_command.rb +4 -4
  168. data/lib/rubygems/commands/cleanup_command.rb +12 -14
  169. data/lib/rubygems/commands/contents_command.rb +4 -4
  170. data/lib/rubygems/commands/dependency_command.rb +4 -5
  171. data/lib/rubygems/commands/environment_command.rb +1 -3
  172. data/lib/rubygems/commands/exec_command.rb +1 -1
  173. data/lib/rubygems/commands/fetch_command.rb +2 -2
  174. data/lib/rubygems/commands/generate_index_command.rb +39 -74
  175. data/lib/rubygems/commands/help_command.rb +3 -3
  176. data/lib/rubygems/commands/info_command.rb +2 -2
  177. data/lib/rubygems/commands/install_command.rb +8 -16
  178. data/lib/rubygems/commands/list_command.rb +2 -2
  179. data/lib/rubygems/commands/lock_command.rb +1 -1
  180. data/lib/rubygems/commands/open_command.rb +1 -1
  181. data/lib/rubygems/commands/owner_command.rb +1 -1
  182. data/lib/rubygems/commands/pristine_command.rb +13 -15
  183. data/lib/rubygems/commands/push_command.rb +2 -2
  184. data/lib/rubygems/commands/query_command.rb +4 -5
  185. data/lib/rubygems/commands/rdoc_command.rb +2 -2
  186. data/lib/rubygems/commands/search_command.rb +2 -2
  187. data/lib/rubygems/commands/setup_command.rb +31 -34
  188. data/lib/rubygems/commands/sources_command.rb +12 -12
  189. data/lib/rubygems/commands/specification_command.rb +10 -10
  190. data/lib/rubygems/commands/stale_command.rb +1 -1
  191. data/lib/rubygems/commands/uninstall_command.rb +9 -10
  192. data/lib/rubygems/commands/unpack_command.rb +4 -4
  193. data/lib/rubygems/commands/update_command.rb +10 -12
  194. data/lib/rubygems/commands/which_command.rb +1 -1
  195. data/lib/rubygems/commands/yank_command.rb +1 -1
  196. data/lib/rubygems/compatibility.rb +5 -6
  197. data/lib/rubygems/config_file.rb +4 -4
  198. data/lib/rubygems/core_ext/kernel_gem.rb +0 -2
  199. data/lib/rubygems/core_ext/kernel_require.rb +19 -48
  200. data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
  201. data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
  202. data/lib/rubygems/defaults.rb +15 -3
  203. data/lib/rubygems/dependency.rb +12 -14
  204. data/lib/rubygems/dependency_installer.rb +29 -30
  205. data/lib/rubygems/dependency_list.rb +1 -1
  206. data/lib/rubygems/deprecate.rb +16 -15
  207. data/lib/rubygems/doctor.rb +5 -5
  208. data/lib/rubygems/errors.rb +2 -6
  209. data/lib/rubygems/exceptions.rb +2 -1
  210. data/lib/rubygems/ext/builder.rb +15 -10
  211. data/lib/rubygems/ext/cargo_builder.rb +5 -5
  212. data/lib/rubygems/ext/ext_conf_builder.rb +1 -3
  213. data/lib/rubygems/gem_runner.rb +4 -4
  214. data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +3 -3
  215. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -3
  216. data/lib/rubygems/gemcutter_utilities.rb +18 -19
  217. data/lib/rubygems/install_update_options.rb +18 -19
  218. data/lib/rubygems/installer.rb +59 -33
  219. data/lib/rubygems/installer_uninstaller_utils.rb +0 -2
  220. data/lib/rubygems/local_remote_options.rb +7 -10
  221. data/lib/rubygems/name_tuple.rb +7 -9
  222. data/lib/rubygems/net/http.rb +3 -0
  223. data/lib/rubygems/net-http/.document +1 -0
  224. data/lib/rubygems/net-http/LICENSE.txt +22 -0
  225. data/lib/rubygems/net-http/lib/net/http/backward.rb +40 -0
  226. data/lib/rubygems/net-http/lib/net/http/exceptions.rb +34 -0
  227. data/lib/rubygems/net-http/lib/net/http/generic_request.rb +414 -0
  228. data/lib/rubygems/net-http/lib/net/http/header.rb +981 -0
  229. data/lib/rubygems/net-http/lib/net/http/proxy_delta.rb +17 -0
  230. data/lib/rubygems/net-http/lib/net/http/request.rb +88 -0
  231. data/lib/rubygems/net-http/lib/net/http/requests.rb +425 -0
  232. data/lib/rubygems/net-http/lib/net/http/response.rb +738 -0
  233. data/lib/rubygems/net-http/lib/net/http/responses.rb +1174 -0
  234. data/lib/rubygems/net-http/lib/net/http/status.rb +84 -0
  235. data/lib/rubygems/net-http/lib/net/http.rb +2496 -0
  236. data/lib/rubygems/net-http/lib/net/https.rb +23 -0
  237. data/lib/rubygems/net-protocol/.document +1 -0
  238. data/lib/rubygems/net-protocol/LICENSE.txt +22 -0
  239. data/lib/rubygems/net-protocol/lib/net/protocol.rb +544 -0
  240. data/lib/rubygems/optparse/lib/optparse.rb +39 -17
  241. data/lib/rubygems/package/old.rb +2 -2
  242. data/lib/rubygems/package/tar_header.rb +45 -39
  243. data/lib/rubygems/package/tar_reader/entry.rb +5 -4
  244. data/lib/rubygems/package/tar_reader.rb +5 -3
  245. data/lib/rubygems/package/tar_writer.rb +19 -17
  246. data/lib/rubygems/package.rb +27 -26
  247. data/lib/rubygems/package_task.rb +2 -2
  248. data/lib/rubygems/path_support.rb +9 -10
  249. data/lib/rubygems/platform.rb +60 -45
  250. data/lib/rubygems/query_utils.rb +7 -9
  251. data/lib/rubygems/remote_fetcher.rb +15 -15
  252. data/lib/rubygems/request/connection_pools.rb +3 -3
  253. data/lib/rubygems/request.rb +20 -17
  254. data/lib/rubygems/request_set/gem_dependency_api.rb +119 -122
  255. data/lib/rubygems/request_set/lockfile/parser.rb +9 -9
  256. data/lib/rubygems/request_set/lockfile/tokenizer.rb +20 -12
  257. data/lib/rubygems/request_set/lockfile.rb +6 -11
  258. data/lib/rubygems/request_set.rb +5 -5
  259. data/lib/rubygems/requirement.rb +7 -7
  260. data/lib/rubygems/resolv/.document +1 -0
  261. data/lib/rubygems/resolv/LICENSE.txt +22 -0
  262. data/lib/rubygems/resolv/lib/resolv.rb +3387 -0
  263. data/lib/rubygems/resolver/activation_request.rb +1 -3
  264. data/lib/rubygems/resolver/api_set/gem_parser.rb +7 -3
  265. data/lib/rubygems/resolver/best_set.rb +1 -1
  266. data/lib/rubygems/resolver/composed_set.rb +1 -1
  267. data/lib/rubygems/resolver/conflict.rb +4 -12
  268. data/lib/rubygems/resolver/index_set.rb +4 -4
  269. data/lib/rubygems/resolver/index_specification.rb +2 -2
  270. data/lib/rubygems/resolver/installer_set.rb +5 -6
  271. data/lib/rubygems/resolver/lock_set.rb +1 -1
  272. data/lib/rubygems/resolver/molinillo/.document +1 -0
  273. data/lib/rubygems/resolver.rb +3 -10
  274. data/lib/rubygems/s3_uri_signer.rb +6 -6
  275. data/lib/rubygems/safe_marshal/elements.rb +138 -0
  276. data/lib/rubygems/safe_marshal/reader.rb +306 -0
  277. data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
  278. data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +385 -0
  279. data/lib/rubygems/safe_marshal/visitors/visitor.rb +74 -0
  280. data/lib/rubygems/safe_marshal.rb +74 -0
  281. data/lib/rubygems/safe_yaml.rb +5 -28
  282. data/lib/rubygems/security/policies.rb +36 -38
  283. data/lib/rubygems/security/policy.rb +7 -11
  284. data/lib/rubygems/security/signer.rb +1 -1
  285. data/lib/rubygems/security/trust_dir.rb +3 -3
  286. data/lib/rubygems/security.rb +8 -22
  287. data/lib/rubygems/source/git.rb +1 -3
  288. data/lib/rubygems/source/installed.rb +0 -2
  289. data/lib/rubygems/source/local.rb +5 -8
  290. data/lib/rubygems/source/lock.rb +1 -3
  291. data/lib/rubygems/source/specific_file.rb +0 -1
  292. data/lib/rubygems/source/vendor.rb +0 -2
  293. data/lib/rubygems/source.rb +12 -12
  294. data/lib/rubygems/source_list.rb +4 -4
  295. data/lib/rubygems/spec_fetcher.rb +29 -29
  296. data/lib/rubygems/specification.rb +125 -138
  297. data/lib/rubygems/specification_policy.rb +55 -25
  298. data/lib/rubygems/stub_specification.rb +4 -5
  299. data/lib/rubygems/text.rb +1 -2
  300. data/lib/rubygems/timeout/.document +1 -0
  301. data/lib/rubygems/timeout/LICENSE.txt +22 -0
  302. data/lib/rubygems/timeout/lib/timeout.rb +199 -0
  303. data/lib/rubygems/timeout.rb +3 -0
  304. data/lib/rubygems/tsort/lib/tsort.rb +3 -0
  305. data/lib/rubygems/uninstaller.rb +7 -9
  306. data/lib/rubygems/update_suggestion.rb +5 -18
  307. data/lib/rubygems/uri_formatter.rb +1 -1
  308. data/lib/rubygems/user_interaction.rb +15 -21
  309. data/lib/rubygems/util/licenses.rb +65 -35
  310. data/lib/rubygems/util/list.rb +3 -1
  311. data/lib/rubygems/util.rb +2 -4
  312. data/lib/rubygems/validator.rb +5 -3
  313. data/lib/rubygems/version.rb +34 -28
  314. data/lib/rubygems/version_option.rb +2 -5
  315. data/lib/rubygems/yaml_serializer.rb +3 -3
  316. data/lib/rubygems.rb +37 -37
  317. data/rubygems-update.gemspec +4 -4
  318. data/setup.rb +2 -2
  319. metadata +50 -225
  320. data/lib/rubygems/indexer.rb +0 -428
  321. data/lib/rubygems/mock_gem_ui.rb +0 -86
  322. data/test/rubygems/alternate_cert.pem +0 -19
  323. data/test/rubygems/alternate_cert_32.pem +0 -19
  324. data/test/rubygems/alternate_key.pem +0 -27
  325. data/test/rubygems/bad_rake.rb +0 -3
  326. data/test/rubygems/bundler_test_gem.rb +0 -424
  327. data/test/rubygems/ca_cert.pem +0 -77
  328. data/test/rubygems/child_cert.pem +0 -19
  329. data/test/rubygems/child_cert_32.pem +0 -19
  330. data/test/rubygems/child_key.pem +0 -27
  331. data/test/rubygems/client.pem +0 -107
  332. data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
  333. data/test/rubygems/data/gem-private_key.pem +0 -27
  334. data/test/rubygems/data/gem-public_cert.pem +0 -20
  335. data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
  336. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  337. data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
  338. data/test/rubygems/encrypted_private_key.pem +0 -30
  339. data/test/rubygems/expired_cert.pem +0 -19
  340. data/test/rubygems/fake_certlib/openssl.rb +0 -9
  341. data/test/rubygems/foo/discover.rb +0 -1
  342. data/test/rubygems/future_cert.pem +0 -19
  343. data/test/rubygems/future_cert_32.pem +0 -19
  344. data/test/rubygems/good_rake.rb +0 -3
  345. data/test/rubygems/grandchild_cert.pem +0 -19
  346. data/test/rubygems/grandchild_cert_32.pem +0 -19
  347. data/test/rubygems/grandchild_key.pem +0 -27
  348. data/test/rubygems/helper.rb +0 -1649
  349. data/test/rubygems/installer_test_case.rb +0 -248
  350. data/test/rubygems/invalid_client.pem +0 -49
  351. data/test/rubygems/invalid_issuer_cert.pem +0 -20
  352. data/test/rubygems/invalid_issuer_cert_32.pem +0 -20
  353. data/test/rubygems/invalid_key.pem +0 -27
  354. data/test/rubygems/invalid_signer_cert.pem +0 -19
  355. data/test/rubygems/invalid_signer_cert_32.pem +0 -19
  356. data/test/rubygems/invalidchild_cert.pem +0 -19
  357. data/test/rubygems/invalidchild_cert_32.pem +0 -19
  358. data/test/rubygems/invalidchild_key.pem +0 -27
  359. data/test/rubygems/multifactor_auth_utilities.rb +0 -111
  360. data/test/rubygems/package/tar_test_case.rb +0 -175
  361. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  362. data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
  363. data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
  364. data/test/rubygems/plugin/exception/rubygems_plugin.rb +0 -4
  365. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -5
  366. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -4
  367. data/test/rubygems/private3072_key.pem +0 -40
  368. data/test/rubygems/private_ec_key.pem +0 -9
  369. data/test/rubygems/private_key.pem +0 -27
  370. data/test/rubygems/public3072_cert.pem +0 -25
  371. data/test/rubygems/public_cert.pem +0 -20
  372. data/test/rubygems/public_cert_32.pem +0 -19
  373. data/test/rubygems/public_key.pem +0 -9
  374. data/test/rubygems/rubygems/commands/crash_command.rb +0 -5
  375. data/test/rubygems/rubygems_plugin.rb +0 -24
  376. data/test/rubygems/sff/discover.rb +0 -1
  377. data/test/rubygems/simple_gem.rb +0 -68
  378. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -9
  379. data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
  380. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +0 -14
  381. data/test/rubygems/ssl_cert.pem +0 -80
  382. data/test/rubygems/ssl_key.pem +0 -27
  383. data/test/rubygems/test_bundled_ca.rb +0 -61
  384. data/test/rubygems/test_config.rb +0 -28
  385. data/test/rubygems/test_deprecate.rb +0 -158
  386. data/test/rubygems/test_exit.rb +0 -17
  387. data/test/rubygems/test_gem.rb +0 -1799
  388. data/test/rubygems/test_gem_available_set.rb +0 -130
  389. data/test/rubygems/test_gem_bundler_version_finder.rb +0 -127
  390. data/test/rubygems/test_gem_command.rb +0 -403
  391. data/test/rubygems/test_gem_command_manager.rb +0 -400
  392. data/test/rubygems/test_gem_commands_build_command.rb +0 -739
  393. data/test/rubygems/test_gem_commands_cert_command.rb +0 -866
  394. data/test/rubygems/test_gem_commands_check_command.rb +0 -68
  395. data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -292
  396. data/test/rubygems/test_gem_commands_contents_command.rb +0 -271
  397. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -228
  398. data/test/rubygems/test_gem_commands_environment_command.rb +0 -169
  399. data/test/rubygems/test_gem_commands_exec_command.rb +0 -857
  400. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -258
  401. data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -81
  402. data/test/rubygems/test_gem_commands_help_command.rb +0 -94
  403. data/test/rubygems/test_gem_commands_info_command.rb +0 -70
  404. data/test/rubygems/test_gem_commands_install_command.rb +0 -1573
  405. data/test/rubygems/test_gem_commands_list_command.rb +0 -33
  406. data/test/rubygems/test_gem_commands_lock_command.rb +0 -67
  407. data/test/rubygems/test_gem_commands_mirror.rb +0 -20
  408. data/test/rubygems/test_gem_commands_open_command.rb +0 -101
  409. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -50
  410. data/test/rubygems/test_gem_commands_owner_command.rb +0 -503
  411. data/test/rubygems/test_gem_commands_pristine_command.rb +0 -708
  412. data/test/rubygems/test_gem_commands_push_command.rb +0 -603
  413. data/test/rubygems/test_gem_commands_query_command.rb +0 -858
  414. data/test/rubygems/test_gem_commands_search_command.rb +0 -16
  415. data/test/rubygems/test_gem_commands_server_command.rb +0 -20
  416. data/test/rubygems/test_gem_commands_setup_command.rb +0 -474
  417. data/test/rubygems/test_gem_commands_signin_command.rb +0 -259
  418. data/test/rubygems/test_gem_commands_signout_command.rb +0 -30
  419. data/test/rubygems/test_gem_commands_sources_command.rb +0 -534
  420. data/test/rubygems/test_gem_commands_specification_command.rb +0 -277
  421. data/test/rubygems/test_gem_commands_stale_command.rb +0 -43
  422. data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -542
  423. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -224
  424. data/test/rubygems/test_gem_commands_update_command.rb +0 -836
  425. data/test/rubygems/test_gem_commands_which_command.rb +0 -85
  426. data/test/rubygems/test_gem_commands_yank_command.rb +0 -299
  427. data/test/rubygems/test_gem_config_file.rb +0 -551
  428. data/test/rubygems/test_gem_dependency.rb +0 -398
  429. data/test/rubygems/test_gem_dependency_installer.rb +0 -1190
  430. data/test/rubygems/test_gem_dependency_list.rb +0 -265
  431. data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -27
  432. data/test/rubygems/test_gem_doctor.rb +0 -195
  433. data/test/rubygems/test_gem_ext_builder.rb +0 -337
  434. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +0 -1
  435. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +0 -10
  436. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +0 -249
  437. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +0 -10
  438. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +0 -27
  439. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +0 -3
  440. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +0 -1
  441. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +0 -249
  442. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +0 -10
  443. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +0 -10
  444. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +0 -51
  445. data/test/rubygems/test_gem_ext_cargo_builder.rb +0 -167
  446. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +0 -34
  447. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -60
  448. data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -84
  449. data/test/rubygems/test_gem_ext_configure_builder.rb +0 -80
  450. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -229
  451. data/test/rubygems/test_gem_ext_rake_builder.rb +0 -113
  452. data/test/rubygems/test_gem_gem_runner.rb +0 -119
  453. data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -361
  454. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -60
  455. data/test/rubygems/test_gem_indexer.rb +0 -381
  456. data/test/rubygems/test_gem_install_update_options.rb +0 -208
  457. data/test/rubygems/test_gem_installer.rb +0 -2512
  458. data/test/rubygems/test_gem_local_remote_options.rb +0 -133
  459. data/test/rubygems/test_gem_name_tuple.rb +0 -43
  460. data/test/rubygems/test_gem_package.rb +0 -1306
  461. data/test/rubygems/test_gem_package_old.rb +0 -91
  462. data/test/rubygems/test_gem_package_tar_header.rb +0 -226
  463. data/test/rubygems/test_gem_package_tar_reader.rb +0 -150
  464. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -350
  465. data/test/rubygems/test_gem_package_tar_writer.rb +0 -331
  466. data/test/rubygems/test_gem_package_task.rb +0 -118
  467. data/test/rubygems/test_gem_path_support.rb +0 -139
  468. data/test/rubygems/test_gem_platform.rb +0 -497
  469. data/test/rubygems/test_gem_rdoc.rb +0 -137
  470. data/test/rubygems/test_gem_remote_fetcher.rb +0 -1227
  471. data/test/rubygems/test_gem_request.rb +0 -547
  472. data/test/rubygems/test_gem_request_connection_pools.rb +0 -152
  473. data/test/rubygems/test_gem_request_set.rb +0 -672
  474. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -853
  475. data/test/rubygems/test_gem_request_set_lockfile.rb +0 -469
  476. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -544
  477. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -307
  478. data/test/rubygems/test_gem_requirement.rb +0 -505
  479. data/test/rubygems/test_gem_resolver.rb +0 -859
  480. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -43
  481. data/test/rubygems/test_gem_resolver_api_set.rb +0 -210
  482. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -167
  483. data/test/rubygems/test_gem_resolver_best_set.rb +0 -159
  484. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -44
  485. data/test/rubygems/test_gem_resolver_conflict.rb +0 -82
  486. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -83
  487. data/test/rubygems/test_gem_resolver_git_set.rb +0 -188
  488. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -114
  489. data/test/rubygems/test_gem_resolver_index_set.rb +0 -88
  490. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -93
  491. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -47
  492. data/test/rubygems/test_gem_resolver_installer_set.rb +0 -320
  493. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -44
  494. data/test/rubygems/test_gem_resolver_lock_set.rb +0 -62
  495. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -98
  496. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -19
  497. data/test/rubygems/test_gem_resolver_specification.rb +0 -63
  498. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -82
  499. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -82
  500. data/test/rubygems/test_gem_security.rb +0 -341
  501. data/test/rubygems/test_gem_security_policy.rb +0 -535
  502. data/test/rubygems/test_gem_security_signer.rb +0 -218
  503. data/test/rubygems/test_gem_security_trust_dir.rb +0 -99
  504. data/test/rubygems/test_gem_silent_ui.rb +0 -123
  505. data/test/rubygems/test_gem_source.rb +0 -254
  506. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -37
  507. data/test/rubygems/test_gem_source_git.rb +0 -310
  508. data/test/rubygems/test_gem_source_installed.rb +0 -35
  509. data/test/rubygems/test_gem_source_list.rb +0 -119
  510. data/test/rubygems/test_gem_source_local.rb +0 -107
  511. data/test/rubygems/test_gem_source_lock.rb +0 -113
  512. data/test/rubygems/test_gem_source_specific_file.rb +0 -76
  513. data/test/rubygems/test_gem_source_subpath_problem.rb +0 -50
  514. data/test/rubygems/test_gem_source_vendor.rb +0 -30
  515. data/test/rubygems/test_gem_spec_fetcher.rb +0 -338
  516. data/test/rubygems/test_gem_specification.rb +0 -3856
  517. data/test/rubygems/test_gem_stream_ui.rb +0 -255
  518. data/test/rubygems/test_gem_stub_specification.rb +0 -278
  519. data/test/rubygems/test_gem_text.rb +0 -103
  520. data/test/rubygems/test_gem_uninstaller.rb +0 -675
  521. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -31
  522. data/test/rubygems/test_gem_update_suggestion.rb +0 -209
  523. data/test/rubygems/test_gem_uri.rb +0 -41
  524. data/test/rubygems/test_gem_uri_formatter.rb +0 -27
  525. data/test/rubygems/test_gem_util.rb +0 -91
  526. data/test/rubygems/test_gem_validator.rb +0 -42
  527. data/test/rubygems/test_gem_version.rb +0 -305
  528. data/test/rubygems/test_gem_version_option.rb +0 -165
  529. data/test/rubygems/test_kernel.rb +0 -124
  530. data/test/rubygems/test_project_sanity.rb +0 -49
  531. data/test/rubygems/test_remote_fetch_error.rb +0 -20
  532. data/test/rubygems/test_require.rb +0 -732
  533. data/test/rubygems/test_rubygems.rb +0 -76
  534. data/test/rubygems/test_webauthn_listener.rb +0 -143
  535. data/test/rubygems/test_webauthn_listener_response.rb +0 -93
  536. data/test/rubygems/test_webauthn_poller.rb +0 -124
  537. data/test/rubygems/utilities.rb +0 -436
  538. data/test/rubygems/wrong_key_cert.pem +0 -19
  539. data/test/rubygems/wrong_key_cert_32.pem +0 -19
  540. 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