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,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