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,672 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/request_set"
5
-
6
- class TestGemRequestSet < Gem::TestCase
7
- def setup
8
- super
9
-
10
- Gem::RemoteFetcher.fetcher = @fetcher = Gem::FakeFetcher.new
11
-
12
- @DR = Gem::Resolver
13
- end
14
-
15
- def test_gem
16
- util_spec "a", "2"
17
-
18
- rs = Gem::RequestSet.new
19
- rs.gem "a", "= 2"
20
-
21
- assert_equal [Gem::Dependency.new("a", "=2")], rs.dependencies
22
- end
23
-
24
- def test_gem_duplicate
25
- rs = Gem::RequestSet.new
26
-
27
- rs.gem "a", "1"
28
- rs.gem "a", "2"
29
-
30
- assert_equal [dep("a", "= 1", "= 2")], rs.dependencies
31
- end
32
-
33
- def test_import
34
- rs = Gem::RequestSet.new
35
- rs.gem "a"
36
-
37
- rs.import [dep("b")]
38
-
39
- assert_equal [dep("a"), dep("b")], rs.dependencies
40
- end
41
-
42
- def test_install_from_gemdeps
43
- spec_fetcher do |fetcher|
44
- fetcher.gem "a", 2
45
- end
46
-
47
- done_installing_ran = false
48
-
49
- Gem.done_installing do |installer, specs|
50
- done_installing_ran = true
51
- end
52
-
53
- rs = Gem::RequestSet.new
54
- installed = []
55
-
56
- File.open "gem.deps.rb", "w" do |io|
57
- io.puts 'gem "a"'
58
- io.flush
59
-
60
- result = rs.install_from_gemdeps :gemdeps => io.path do |req, installer|
61
- installed << req.full_name
62
- end
63
-
64
- assert_kind_of Array, result # what is supposed to be in here?
65
- end
66
-
67
- assert_includes installed, "a-2"
68
- assert_path_exist File.join @gemhome, "gems", "a-2"
69
- assert_path_exist "gem.deps.rb.lock"
70
-
71
- assert rs.remote
72
- refute done_installing_ran
73
- end
74
-
75
- def test_install_from_gemdeps_explain
76
- spec_fetcher do |fetcher|
77
- fetcher.gem "a", 2
78
- end
79
-
80
- rs = Gem::RequestSet.new
81
-
82
- File.open "gem.deps.rb", "w" do |io|
83
- io.puts 'gem "a"'
84
- io.flush
85
-
86
- expected = <<-EXPECTED
87
- Gems to install:
88
- a-2
89
- EXPECTED
90
-
91
- actual, _ = capture_output do
92
- rs.install_from_gemdeps :gemdeps => io.path, :explain => true
93
- end
94
- assert_equal(expected, actual)
95
- end
96
- end
97
-
98
- def test_install_from_gemdeps_install_dir
99
- spec_fetcher do |fetcher|
100
- fetcher.gem "a", 2
101
- end
102
-
103
- util_clear_gems
104
- assert_path_not_exist File.join Gem.dir, "gems", "a-2"
105
-
106
- rs = Gem::RequestSet.new
107
- installed = []
108
-
109
- File.open "gem.deps.rb", "w" do |io|
110
- io.puts 'gem "a"'
111
- end
112
-
113
- options = {
114
- :gemdeps => "gem.deps.rb",
115
- :install_dir => "#{@gemhome}2",
116
- }
117
-
118
- rs.install_from_gemdeps options do |req, installer|
119
- installed << req.full_name
120
- end
121
-
122
- assert_includes installed, "a-2"
123
- assert_path_not_exist File.join Gem.dir, "gems", "a-2"
124
- end
125
-
126
- def test_install_from_gemdeps_local
127
- spec_fetcher do |fetcher|
128
- fetcher.gem "a", 2
129
- end
130
-
131
- rs = Gem::RequestSet.new
132
-
133
- File.open "gem.deps.rb", "w" do |io|
134
- io.puts 'gem "a"'
135
- io.flush
136
-
137
- assert_raise Gem::UnsatisfiableDependencyError do
138
- rs.install_from_gemdeps :gemdeps => io.path, :domain => :local
139
- end
140
- end
141
-
142
- refute rs.remote
143
- end
144
-
145
- def test_install_from_gemdeps_lockfile
146
- spec_fetcher do |fetcher|
147
- fetcher.download "a", 1
148
- fetcher.download "a", 2
149
- fetcher.download "b", 1, "a" => ">= 0"
150
- end
151
-
152
- rs = Gem::RequestSet.new
153
- installed = []
154
-
155
- File.open "gem.deps.rb.lock", "w" do |io|
156
- io.puts <<-LOCKFILE
157
- GEM
158
- remote: #{@gem_repo}
159
- specs:
160
- a (1)
161
- b (1)
162
- a (~> 1.0)
163
-
164
- PLATFORMS
165
- #{Gem::Platform::RUBY}
166
-
167
- DEPENDENCIES
168
- b
169
- LOCKFILE
170
- end
171
-
172
- File.open "gem.deps.rb", "w" do |io|
173
- io.puts 'gem "b"'
174
- end
175
-
176
- rs.install_from_gemdeps :gemdeps => "gem.deps.rb" do |req, installer|
177
- installed << req.full_name
178
- end
179
-
180
- assert_includes installed, "b-1"
181
- assert_includes installed, "a-1"
182
-
183
- assert_path_exist File.join @gemhome, "specifications", "a-1.gemspec"
184
- assert_path_exist File.join @gemhome, "specifications", "b-1.gemspec"
185
- end
186
-
187
- def test_install_from_gemdeps_complex_dependencies
188
- quick_gem("z", 1)
189
- quick_gem("z", "1.0.1")
190
- quick_gem("z", "1.0.2")
191
- quick_gem("z", "1.0.3")
192
- quick_gem("z", 2)
193
-
194
- spec_fetcher do |fetcher|
195
- fetcher.download "z", 1
196
- end
197
-
198
- rs = Gem::RequestSet.new
199
- installed = []
200
-
201
- File.open "Gemfile.lock", "w" do |io|
202
- io.puts <<-LOCKFILE
203
- GEM
204
- remote: #{@gem_repo}
205
- specs:
206
- z (1)
207
-
208
- PLATFORMS
209
- #{Gem::Platform::RUBY}
210
-
211
- DEPENDENCIES
212
- z (~> 1.0, >= 1.0.1)
213
- LOCKFILE
214
- end
215
-
216
- File.open "testo.gemspec", "w" do |io|
217
- io.puts <<-LOCKFILE
218
- Gem::Specification.new do |spec|
219
- spec.name = 'testo'
220
- spec.version = '1.0.0'
221
- spec.add_dependency('z', '~> 1.0', '>= 1.0.1')
222
- end
223
- LOCKFILE
224
- end
225
-
226
- File.open "Gemfile", "w" do |io|
227
- io.puts("gemspec")
228
- end
229
-
230
- rs.install_from_gemdeps :gemdeps => "Gemfile" do |req, installer|
231
- installed << req.full_name
232
- end
233
-
234
- assert_includes installed, "z-1.0.3"
235
-
236
- assert_path_exist File.join @gemhome, "specifications", "z-1.0.3.gemspec"
237
- end
238
-
239
- def test_install_from_gemdeps_version_mismatch
240
- spec_fetcher do |fetcher|
241
- fetcher.gem "a", 2
242
- end
243
-
244
- rs = Gem::RequestSet.new
245
- installed = []
246
-
247
- File.open "gem.deps.rb", "w" do |io|
248
- io.puts <<-GEM_DEPS
249
- gem "a"
250
- ruby "0"
251
- GEM_DEPS
252
-
253
- io.flush
254
-
255
- rs.install_from_gemdeps :gemdeps => io.path do |req, installer|
256
- installed << req.full_name
257
- end
258
- end
259
-
260
- assert_includes installed, "a-2"
261
- end
262
-
263
- def test_load_gemdeps
264
- rs = Gem::RequestSet.new
265
-
266
- tf = Tempfile.open "gem.deps.rb" do |io|
267
- io.puts 'gem "a"'
268
- io.flush
269
-
270
- gem_deps = rs.load_gemdeps io.path
271
-
272
- assert_kind_of Gem::RequestSet::GemDependencyAPI, gem_deps
273
- io
274
- end
275
- tf.close!
276
-
277
- assert_equal [dep("a")], rs.dependencies
278
-
279
- assert rs.git_set
280
- assert rs.vendor_set
281
- end
282
-
283
- def test_load_gemdeps_installing
284
- rs = Gem::RequestSet.new
285
-
286
- tf = Tempfile.open "gem.deps.rb" do |io|
287
- io.puts 'ruby "0"'
288
- io.puts 'gem "a"'
289
- io.flush
290
-
291
- gem_deps = rs.load_gemdeps io.path, [], true
292
-
293
- assert_kind_of Gem::RequestSet::GemDependencyAPI, gem_deps
294
- io
295
- end
296
- tf.close!
297
-
298
- assert_equal [dep("a")], rs.dependencies
299
- end
300
-
301
- def test_load_gemdeps_without_groups
302
- rs = Gem::RequestSet.new
303
-
304
- tf = Tempfile.open "gem.deps.rb" do |io|
305
- io.puts 'gem "a", :group => :test'
306
- io.flush
307
-
308
- rs.load_gemdeps io.path, [:test]
309
- io
310
- end
311
- tf.close!
312
-
313
- assert_empty rs.dependencies
314
- end
315
-
316
- def test_resolve
317
- a = util_spec "a", "2", "b" => ">= 2"
318
- b = util_spec "b", "2"
319
-
320
- rs = Gem::RequestSet.new
321
- rs.gem "a"
322
-
323
- orig_errors = rs.errors
324
-
325
- res = rs.resolve StaticSet.new([a, b])
326
- assert_equal 2, res.size
327
-
328
- names = res.map {|s| s.full_name }.sort
329
-
330
- assert_equal ["a-2", "b-2"], names
331
-
332
- refute_same orig_errors, rs.errors
333
- end
334
-
335
- def test_bug_bug_990
336
- a = util_spec "a", "1.b", "b" => "~> 1.a"
337
- b = util_spec "b", "1.b", "c" => ">= 1"
338
- c = util_spec "c", "1.1.b"
339
-
340
- rs = Gem::RequestSet.new
341
- rs.gem "a"
342
- rs.prerelease = true
343
-
344
- res = rs.resolve StaticSet.new([a, b, c])
345
- assert_equal 3, res.size
346
-
347
- names = res.map {|s| s.full_name }.sort
348
-
349
- assert_equal %w[a-1.b b-1.b c-1.1.b], names
350
- end
351
-
352
- def test_resolve_development
353
- a = util_spec "a", 1
354
- spec = Gem::Resolver::SpecSpecification.new nil, a
355
-
356
- rs = Gem::RequestSet.new
357
- rs.gem "a"
358
- rs.development = true
359
-
360
- res = rs.resolve StaticSet.new [spec]
361
- assert_equal 1, res.size
362
-
363
- assert rs.resolver.development
364
- refute rs.resolver.development_shallow
365
- end
366
-
367
- def test_resolve_development_shallow
368
- a = util_spec "a", 1 do |s|
369
- s.add_development_dependency "b"
370
- end
371
-
372
- b = util_spec "b", 1 do |s|
373
- s.add_development_dependency "c"
374
- end
375
-
376
- c = util_spec "c", 1
377
-
378
- a_spec = Gem::Resolver::SpecSpecification.new nil, a
379
- b_spec = Gem::Resolver::SpecSpecification.new nil, b
380
- c_spec = Gem::Resolver::SpecSpecification.new nil, c
381
-
382
- rs = Gem::RequestSet.new
383
- rs.gem "a"
384
- rs.development = true
385
- rs.development_shallow = true
386
-
387
- res = rs.resolve StaticSet.new [a_spec, b_spec, c_spec]
388
- assert_equal 2, res.size
389
-
390
- assert rs.resolver.development
391
- assert rs.resolver.development_shallow
392
- end
393
-
394
- def test_resolve_git
395
- name, _, repository, = git_gem
396
-
397
- rs = Gem::RequestSet.new
398
-
399
- tf = Tempfile.open "gem.deps.rb" do |io|
400
- io.puts <<-GEMS_DEPS_RB
401
- gem "#{name}", :git => "#{repository}"
402
- GEMS_DEPS_RB
403
-
404
- io.flush
405
-
406
- rs.load_gemdeps io.path
407
- io
408
- end
409
- tf.close!
410
-
411
- res = rs.resolve
412
- assert_equal 1, res.size
413
-
414
- names = res.map {|s| s.full_name }.sort
415
-
416
- assert_equal %w[a-1], names
417
-
418
- assert_equal [@DR::BestSet, @DR::GitSet, @DR::VendorSet, @DR::SourceSet],
419
- rs.sets.map {|set| set.class }
420
- end
421
-
422
- def test_resolve_ignore_dependencies
423
- a = util_spec "a", "2", "b" => ">= 2"
424
- b = util_spec "b", "2"
425
-
426
- rs = Gem::RequestSet.new
427
- rs.gem "a"
428
- rs.ignore_dependencies = true
429
-
430
- res = rs.resolve StaticSet.new([a, b])
431
- assert_equal 1, res.size
432
-
433
- names = res.map {|s| s.full_name }.sort
434
-
435
- assert_equal %w[a-2], names
436
- end
437
-
438
- def test_resolve_incompatible
439
- a1 = util_spec "a", 1
440
- a2 = util_spec "a", 2
441
-
442
- rs = Gem::RequestSet.new
443
- rs.gem "a", "= 1"
444
- rs.gem "a", "= 2"
445
-
446
- set = StaticSet.new [a1, a2]
447
-
448
- assert_raise Gem::UnsatisfiableDependencyError do
449
- rs.resolve set
450
- end
451
- end
452
-
453
- def test_resolve_vendor
454
- a_name, _, a_directory = vendor_gem "a", 1 do |s|
455
- s.add_dependency "b", "~> 2.0"
456
- end
457
-
458
- b_name, _, b_directory = vendor_gem "b", 2
459
-
460
- rs = Gem::RequestSet.new
461
-
462
- tf = Tempfile.open "gem.deps.rb" do |io|
463
- io.puts <<-GEMS_DEPS_RB
464
- gem "#{a_name}", :path => "#{a_directory}"
465
- gem "#{b_name}", :path => "#{b_directory}"
466
- GEMS_DEPS_RB
467
-
468
- io.flush
469
-
470
- rs.load_gemdeps io.path
471
- io
472
- end
473
- tf.close!
474
-
475
- res = rs.resolve
476
- assert_equal 2, res.size
477
-
478
- names = res.map {|s| s.full_name }.sort
479
-
480
- assert_equal ["a-1", "b-2"], names
481
-
482
- assert_equal [@DR::BestSet, @DR::GitSet, @DR::VendorSet, @DR::SourceSet],
483
- rs.sets.map {|set| set.class }
484
- end
485
-
486
- def test_sorted_requests
487
- a = util_spec "a", "2", "b" => ">= 2"
488
- b = util_spec "b", "2", "c" => ">= 2"
489
- c = util_spec "c", "2"
490
-
491
- rs = Gem::RequestSet.new
492
- rs.gem "a"
493
-
494
- rs.resolve StaticSet.new([a, b, c])
495
-
496
- names = rs.sorted_requests.map {|s| s.full_name }
497
- assert_equal %w[c-2 b-2 a-2], names
498
- end
499
-
500
- def test_install
501
- done_installing_ran = false
502
-
503
- Gem.done_installing do
504
- done_installing_ran = true
505
- end
506
-
507
- spec_fetcher do |fetcher|
508
- fetcher.download "a", "1", "b" => "= 1"
509
- fetcher.download "b", "1"
510
- end
511
-
512
- rs = Gem::RequestSet.new
513
- rs.gem "a"
514
-
515
- rs.resolve
516
-
517
- reqs = []
518
- installers = []
519
-
520
- installed = rs.install({}) do |req, installer|
521
- reqs << req
522
- installers << installer
523
- end
524
-
525
- assert_equal %w[b-1 a-1], reqs.map {|req| req.full_name }
526
- assert_equal %w[b-1 a-1],
527
- installers.map {|installer| installer.spec.full_name }
528
-
529
- assert_path_exist File.join @gemhome, "specifications", "a-1.gemspec"
530
- assert_path_exist File.join @gemhome, "specifications", "b-1.gemspec"
531
-
532
- assert_equal %w[b-1 a-1], installed.map {|s| s.full_name }
533
-
534
- assert done_installing_ran
535
- end
536
-
537
- def test_install_into
538
- spec_fetcher do |fetcher|
539
- fetcher.gem "a", "1", "b" => "= 1"
540
- fetcher.gem "b", "1"
541
- end
542
-
543
- rs = Gem::RequestSet.new
544
- rs.gem "a"
545
-
546
- rs.resolve
547
-
548
- installed = rs.install_into @tempdir do
549
- assert_equal @tempdir, ENV["GEM_HOME"]
550
- end
551
-
552
- assert_path_exist File.join @tempdir, "specifications", "a-1.gemspec"
553
- assert_path_exist File.join @tempdir, "specifications", "b-1.gemspec"
554
-
555
- assert_equal %w[b-1 a-1], installed.map {|s| s.full_name }
556
- end
557
-
558
- def test_install_into_development_shallow
559
- spec_fetcher do |fetcher|
560
- fetcher.gem "a", "1" do |s|
561
- s.add_development_dependency "b", "= 1"
562
- end
563
-
564
- fetcher.gem "b", "1" do |s|
565
- s.add_development_dependency "c", "= 1"
566
- end
567
-
568
- fetcher.spec "c", "1"
569
- end
570
-
571
- rs = Gem::RequestSet.new
572
- rs.development = true
573
- rs.development_shallow = true
574
- rs.gem "a"
575
-
576
- rs.resolve
577
-
578
- options = {
579
- :development => true,
580
- :development_shallow => true,
581
- }
582
-
583
- installed = rs.install_into @tempdir, true, options do
584
- assert_equal @tempdir, ENV["GEM_HOME"]
585
- end
586
-
587
- assert_equal %w[a-1 b-1], installed.map {|s| s.full_name }.sort
588
- end
589
-
590
- def test_sorted_requests_development_shallow
591
- a = util_spec "a", 1 do |s|
592
- s.add_development_dependency "b"
593
- end
594
-
595
- b = util_spec "b", 1 do |s|
596
- s.add_development_dependency "c"
597
- end
598
-
599
- c = util_spec "c", 1
600
-
601
- rs = Gem::RequestSet.new
602
- rs.gem "a"
603
- rs.development = true
604
- rs.development_shallow = true
605
-
606
- a_spec = Gem::Resolver::SpecSpecification.new nil, a
607
- b_spec = Gem::Resolver::SpecSpecification.new nil, b
608
- c_spec = Gem::Resolver::SpecSpecification.new nil, c
609
-
610
- rs.resolve StaticSet.new [a_spec, b_spec, c_spec]
611
-
612
- assert_equal %w[b-1 a-1], rs.sorted_requests.map {|req| req.full_name }
613
- end
614
-
615
- def test_tsort_each_child_development
616
- a = util_spec "a", 1 do |s|
617
- s.add_development_dependency "b"
618
- end
619
-
620
- b = util_spec "b", 1 do |s|
621
- s.add_development_dependency "c"
622
- end
623
-
624
- c = util_spec "c", 1
625
-
626
- rs = Gem::RequestSet.new
627
- rs.gem "a"
628
- rs.development = true
629
- rs.development_shallow = true
630
-
631
- a_spec = Gem::Resolver::SpecSpecification.new nil, a
632
- b_spec = Gem::Resolver::SpecSpecification.new nil, b
633
- c_spec = Gem::Resolver::SpecSpecification.new nil, c
634
-
635
- rs.resolve StaticSet.new [a_spec, b_spec, c_spec]
636
-
637
- a_req = Gem::Resolver::ActivationRequest.new a_spec, nil
638
-
639
- deps = rs.enum_for(:tsort_each_child, a_req).to_a
640
-
641
- assert_equal %w[b], deps.map {|dep| dep.name }
642
- end
643
-
644
- def test_tsort_each_child_development_shallow
645
- a = util_spec "a", 1 do |s|
646
- s.add_development_dependency "b"
647
- end
648
-
649
- b = util_spec "b", 1 do |s|
650
- s.add_development_dependency "c"
651
- end
652
-
653
- c = util_spec "c", 1
654
-
655
- rs = Gem::RequestSet.new
656
- rs.gem "a"
657
- rs.development = true
658
- rs.development_shallow = true
659
-
660
- a_spec = Gem::Resolver::SpecSpecification.new nil, a
661
- b_spec = Gem::Resolver::SpecSpecification.new nil, b
662
- c_spec = Gem::Resolver::SpecSpecification.new nil, c
663
-
664
- rs.resolve StaticSet.new [a_spec, b_spec, c_spec]
665
-
666
- b_req = Gem::Resolver::ActivationRequest.new b_spec, nil
667
-
668
- deps = rs.enum_for(:tsort_each_child, b_req).to_a
669
-
670
- assert_empty deps
671
- end
672
- end