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,853 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/request_set"
5
-
6
- class TestGemRequestSetGemDependencyAPI < Gem::TestCase
7
- def setup
8
- super
9
-
10
- @GDA = Gem::RequestSet::GemDependencyAPI
11
-
12
- @set = Gem::RequestSet.new
13
-
14
- @git_set = Gem::Resolver::GitSet.new
15
- @vendor_set = Gem::Resolver::VendorSet.new
16
-
17
- @gda = @GDA.new @set, "gem.deps.rb"
18
- @gda.instance_variable_set :@git_set, @git_set
19
- @gda.instance_variable_set :@vendor_set, @vendor_set
20
- end
21
-
22
- def with_engine_version(name, version)
23
- engine = RUBY_ENGINE
24
- engine_version = RUBY_ENGINE_VERSION
25
-
26
- Object.send :remove_const, :RUBY_ENGINE
27
- Object.send :remove_const, :RUBY_ENGINE_VERSION
28
-
29
- Object.const_set :RUBY_ENGINE, name if name
30
- Object.const_set :RUBY_ENGINE_VERSION, version if version
31
-
32
- Gem.instance_variable_set :@ruby_version, Gem::Version.new(version)
33
-
34
- begin
35
- yield
36
- ensure
37
- Object.send :remove_const, :RUBY_ENGINE if name
38
- Object.send :remove_const, :RUBY_ENGINE_VERSION if version
39
-
40
- Object.const_set :RUBY_ENGINE, engine
41
- Object.const_set :RUBY_ENGINE_VERSION, engine_version
42
-
43
- Gem.send :remove_instance_variable, :@ruby_version
44
- end
45
- end
46
-
47
- def test_gempspec_with_multiple_runtime_deps
48
- save_gemspec "foo", "1.0" do |s|
49
- s.add_runtime_dependency "bar", ">= 1.6.0", "< 1.6.4"
50
- end
51
- @gda.gemspec
52
- assert_equal %w[ foo bar ].sort, @set.dependencies.map(&:name).sort
53
- bar = @set.dependencies.find {|d| d.name == "bar" }
54
- assert_equal [["<", Gem::Version.create("1.6.4")],
55
- [">=", Gem::Version.create("1.6.0")]], bar.requirement.requirements.sort
56
- end
57
-
58
- def test_gemspec_without_group
59
- @gda.send :add_dependencies, [:development], [dep("a", "= 1")]
60
-
61
- assert_equal [dep("a", "= 1")], @set.dependencies
62
-
63
- @gda.without_groups << :development
64
-
65
- @gda.send :add_dependencies, [:development], [dep("b", "= 2")]
66
-
67
- assert_equal [dep("a", "= 1")], @set.dependencies
68
- end
69
-
70
- def test_gem
71
- @gda.gem "a"
72
-
73
- assert_equal [dep("a")], @set.dependencies
74
-
75
- assert_equal %w[a], @gda.requires["a"]
76
-
77
- expected = { "a" => Gem::Requirement.default }
78
-
79
- assert_equal expected, @gda.dependencies
80
- end
81
-
82
- def test_gem_duplicate
83
- @gda.gem "a"
84
-
85
- _, err = capture_output do
86
- @gda.gem "a"
87
- end
88
-
89
- expected = "Gem dependencies file gem.deps.rb requires a more than once."
90
-
91
- assert_match expected, err
92
- end
93
-
94
- def test_gem_git
95
- @gda.gem "a", :git => "git/a"
96
-
97
- assert_equal [dep("a")], @set.dependencies
98
-
99
- assert_equal ["git/a", nil], @git_set.repositories["a"]
100
-
101
- expected = { "a" => Gem::Requirement.create("!") }
102
-
103
- assert_equal expected, @gda.dependencies
104
- end
105
-
106
- def test_gem_bitbucket
107
- @gda.gem "a", :bitbucket => "example/repository"
108
-
109
- assert_equal [dep("a")], @set.dependencies
110
-
111
- assert_equal ["https://example@bitbucket.org/example/repository.git", nil],
112
- @git_set.repositories["a"]
113
-
114
- expected = { "a" => Gem::Requirement.create("!") }
115
-
116
- assert_equal expected, @gda.dependencies
117
- end
118
-
119
- def test_gem_bitbucket_expand_path
120
- @gda.gem "a", :bitbucket => "example"
121
-
122
- assert_equal [dep("a")], @set.dependencies
123
-
124
- assert_equal ["https://example@bitbucket.org/example/example.git", nil],
125
- @git_set.repositories["a"]
126
-
127
- expected = { "a" => Gem::Requirement.create("!") }
128
-
129
- assert_equal expected, @gda.dependencies
130
- end
131
-
132
- def test_gem_git_branch
133
- _, err = capture_output do
134
- @gda.gem "a", :git => "git/a", :branch => "other", :tag => "v1"
135
- end
136
- expected = "Gem dependencies file gem.deps.rb includes git reference for both ref/branch and tag but only ref/branch is used."
137
- assert_match expected, err
138
-
139
- assert_equal [dep("a")], @set.dependencies
140
-
141
- assert_equal %w[git/a other], @git_set.repositories["a"]
142
- end
143
-
144
- def test_gem_git_gist
145
- @gda.gem "a", :gist => "a"
146
-
147
- assert_equal [dep("a")], @set.dependencies
148
-
149
- assert_equal ["https://gist.github.com/a.git", nil],
150
- @git_set.repositories["a"]
151
- end
152
-
153
- def test_gem_git_ref
154
- _, err = capture_output do
155
- @gda.gem "a", :git => "git/a", :ref => "abcd123", :branch => "other"
156
- end
157
- expected = "Gem dependencies file gem.deps.rb includes git reference for both ref and branch but only ref is used."
158
- assert_match expected, err
159
-
160
- assert_equal [dep("a")], @set.dependencies
161
-
162
- assert_equal %w[git/a abcd123], @git_set.repositories["a"]
163
- end
164
-
165
- def test_gem_git_submodules
166
- @gda.gem "a", :git => "git/a", :submodules => true
167
-
168
- assert_equal [dep("a")], @set.dependencies
169
-
170
- assert_equal ["git/a", nil], @git_set.repositories["a"]
171
- assert_equal %w[git/a], @git_set.need_submodules.keys
172
- end
173
-
174
- def test_gem_git_tag
175
- @gda.gem "a", :git => "git/a", :tag => "v1"
176
-
177
- assert_equal [dep("a")], @set.dependencies
178
-
179
- assert_equal %w[git/a v1], @git_set.repositories["a"]
180
- end
181
-
182
- def test_gem_github
183
- @gda.gem "a", :github => "example/repository"
184
-
185
- assert_equal [dep("a")], @set.dependencies
186
-
187
- assert_equal ["https://github.com/example/repository.git", nil],
188
- @git_set.repositories["a"]
189
-
190
- expected = { "a" => Gem::Requirement.create("!") }
191
-
192
- assert_equal expected, @gda.dependencies
193
- end
194
-
195
- def test_gem_github_expand_path
196
- @gda.gem "a", :github => "example"
197
-
198
- assert_equal [dep("a")], @set.dependencies
199
-
200
- assert_equal ["https://github.com/example/example.git", nil],
201
- @git_set.repositories["a"]
202
-
203
- expected = { "a" => Gem::Requirement.create("!") }
204
-
205
- assert_equal expected, @gda.dependencies
206
- end
207
-
208
- def test_gem_group
209
- @gda.gem "a", :group => :test
210
-
211
- assert_equal [dep("a")], @set.dependencies
212
- end
213
-
214
- def test_gem_group_without
215
- @gda.without_groups << :test
216
-
217
- @gda.gem "a", :group => :test
218
-
219
- assert_empty @set.dependencies
220
-
221
- expected = { "a" => Gem::Requirement.default }
222
-
223
- assert_equal expected, @gda.dependencies
224
- end
225
-
226
- def test_gem_groups
227
- @gda.gem "a", :groups => [:test, :development]
228
-
229
- assert_equal [dep("a")], @set.dependencies
230
- end
231
-
232
- def test_gem_path
233
- name, version, directory = vendor_gem
234
-
235
- @gda.gem name, :path => directory
236
-
237
- assert_equal [dep(name)], @set.dependencies
238
-
239
- loaded = @vendor_set.load_spec(name, version, Gem::Platform::RUBY, nil)
240
-
241
- assert_equal "#{name}-#{version}", loaded.full_name
242
-
243
- expected = { name => Gem::Requirement.create("!") }
244
-
245
- assert_equal expected, @gda.dependencies
246
- end
247
-
248
- def test_gem_platforms
249
- win_platform = Gem.win_platform?
250
- Gem.win_platform = false
251
-
252
- with_engine_version "ruby", "2.0.0" do
253
- @gda.gem "a", :platforms => :ruby
254
-
255
- refute_empty @set.dependencies
256
- end
257
- ensure
258
- Gem.win_platform = win_platform
259
- end
260
-
261
- def test_gem_platforms_bundler_ruby
262
- win_platform = Gem.win_platform?
263
- Gem.win_platform = false
264
-
265
- with_engine_version "ruby", "2.0.0" do
266
- set = Gem::RequestSet.new
267
- gda = @GDA.new set, "gem.deps.rb"
268
- gda.gem "a", :platforms => :ruby
269
-
270
- refute_empty set.dependencies
271
- end
272
-
273
- with_engine_version "rbx", "2.0.0" do
274
- set = Gem::RequestSet.new
275
- gda = @GDA.new set, "gem.deps.rb"
276
- gda.gem "a", :platforms => :ruby
277
-
278
- refute_empty set.dependencies
279
- end
280
-
281
- with_engine_version "truffleruby", "2.0.0" do
282
- set = Gem::RequestSet.new
283
- gda = @GDA.new set, "gem.deps.rb"
284
- gda.gem "a", :platforms => :ruby
285
-
286
- refute_empty set.dependencies
287
- end
288
-
289
- with_engine_version "jruby", "1.7.6" do
290
- set = Gem::RequestSet.new
291
- gda = @GDA.new set, "gem.deps.rb"
292
- gda.gem "a", :platforms => :ruby
293
-
294
- assert_empty set.dependencies
295
- end
296
-
297
- Gem.win_platform = true
298
-
299
- with_engine_version "ruby", "2.0.0" do
300
- set = Gem::RequestSet.new
301
- gda = @GDA.new set, "gem.deps.rb"
302
- gda.gem "a", :platforms => :ruby
303
-
304
- assert_empty set.dependencies
305
- end
306
-
307
- Gem.win_platform = win_platform
308
- end
309
-
310
- def test_gem_platforms_engine
311
- with_engine_version "jruby", "1.7.6" do
312
- @gda.gem "a", :platforms => :mri
313
-
314
- assert_empty @set.dependencies
315
- end
316
-
317
- with_engine_version "truffleruby", "1.2.3" do
318
- @gda.gem "a", :platforms => :mri
319
-
320
- assert_empty @set.dependencies
321
- end
322
- end
323
-
324
- def test_gem_platforms_maglev
325
- win_platform = Gem.win_platform?
326
- Gem.win_platform = false
327
-
328
- with_engine_version "maglev", "1.0.0" do
329
- set = Gem::RequestSet.new
330
- gda = @GDA.new set, "gem.deps.rb"
331
- gda.gem "a", :platforms => :ruby
332
-
333
- refute_empty set.dependencies
334
-
335
- set = Gem::RequestSet.new
336
- gda = @GDA.new set, "gem.deps.rb"
337
- gda.gem "a", :platforms => :maglev
338
-
339
- refute_empty set.dependencies
340
- end
341
- ensure
342
- Gem.win_platform = win_platform
343
- end
344
-
345
- def test_gem_platforms_truffleruby
346
- with_engine_version "truffleruby", "1.0.0" do
347
- set = Gem::RequestSet.new
348
- gda = @GDA.new set, "gem.deps.rb"
349
- gda.gem "a", :platforms => :truffleruby
350
-
351
- refute_empty set.dependencies
352
-
353
- set = Gem::RequestSet.new
354
- gda = @GDA.new set, "gem.deps.rb"
355
- gda.gem "a", :platforms => :maglev
356
-
357
- assert_empty set.dependencies
358
- end
359
- end
360
-
361
- def test_gem_platforms_multiple
362
- win_platform = Gem.win_platform?
363
- Gem.win_platform = false
364
-
365
- with_engine_version "ruby", "2.0.0" do
366
- @gda.gem "a", :platforms => [:mswin, :jruby]
367
-
368
- assert_empty @set.dependencies
369
- end
370
-
371
- ensure
372
- Gem.win_platform = win_platform
373
- end
374
-
375
- def test_gem_platforms_platform
376
- win_platform = Gem.win_platform?
377
- Gem.win_platform = false
378
-
379
- with_engine_version "ruby", "2.0.0" do
380
- @gda.gem "a", :platforms => :jruby, :platform => :ruby
381
-
382
- refute_empty @set.dependencies
383
- end
384
- ensure
385
- Gem.win_platform = win_platform
386
- end
387
-
388
- def test_gem_platforms_version
389
- with_engine_version "ruby", "2.0.0" do
390
- @gda.gem "a", :platforms => :ruby_18
391
-
392
- assert_empty @set.dependencies
393
- end
394
- end
395
-
396
- def test_gem_platforms_unknown
397
- e = assert_raise ArgumentError do
398
- @gda.gem "a", :platforms => :unknown
399
- end
400
-
401
- assert_equal "unknown platform :unknown", e.message
402
- end
403
-
404
- def test_gem_requires
405
- @gda.gem "a", :require => %w[b c]
406
- @gda.gem "d", :require => "e"
407
-
408
- assert_equal [dep("a"), dep("d")], @set.dependencies
409
-
410
- assert_equal %w[b c], @gda.requires["a"]
411
- assert_equal %w[e], @gda.requires["d"]
412
- end
413
-
414
- def test_gem_requires_false
415
- @gda.gem "a", :require => false
416
-
417
- assert_equal [dep("a")], @set.dependencies
418
-
419
- assert_empty @gda.requires
420
- end
421
-
422
- def test_gem_requires_without_group
423
- @gda.without_groups << :test
424
-
425
- @gda.gem "a", :group => :test
426
-
427
- assert_empty @set.dependencies
428
-
429
- assert_empty @gda.requires["a"]
430
- end
431
-
432
- def test_gem_requirement
433
- @gda.gem "a", "~> 1.0"
434
-
435
- assert_equal [dep("a", "~> 1.0")], @set.dependencies
436
-
437
- expected = { "a" => Gem::Requirement.create(["~> 1.0"]) }
438
-
439
- assert_equal expected, @gda.dependencies
440
- end
441
-
442
- def test_gem_requirements
443
- @gda.gem "b", "~> 1.0", ">= 1.0.2"
444
-
445
- assert_equal [dep("b", "~> 1.0", ">= 1.0.2")], @set.dependencies
446
-
447
- expected = { "b" => Gem::Requirement.create(["~> 1.0", ">= 1.0.2"]) }
448
-
449
- assert_equal expected, @gda.dependencies
450
- end
451
-
452
- def test_gem_requirements_options
453
- @gda.gem "c", :git => "https://example/c.git"
454
-
455
- assert_equal [dep("c")], @set.dependencies
456
- end
457
-
458
- def test_gem_source_mismatch
459
- name, _, directory = vendor_gem
460
-
461
- gda = @GDA.new @set, nil
462
- gda.gem name
463
-
464
- e = assert_raise ArgumentError do
465
- gda.gem name, :path => directory
466
- end
467
-
468
- assert_equal "duplicate source path: #{directory} for gem #{name}",
469
- e.message
470
-
471
- gda = @GDA.new @set, nil
472
- gda.instance_variable_set :@vendor_set, @vendor_set
473
- gda.gem name, :path => directory
474
-
475
- e = assert_raise ArgumentError do
476
- gda.gem name
477
- end
478
-
479
- assert_equal "duplicate source (default) for gem #{name}",
480
- e.message
481
- end
482
-
483
- def test_gem_deps_file
484
- assert_equal "gem.deps.rb", @gda.gem_deps_file
485
-
486
- gda = @GDA.new @set, "foo/Gemfile"
487
-
488
- assert_equal "Gemfile", gda.gem_deps_file
489
- end
490
-
491
- def test_gem_group_method
492
- groups = []
493
-
494
- @gda.group :a do
495
- groups = @gda.send :gem_group, "a", :group => :b, :groups => [:c, :d]
496
- end
497
-
498
- assert_equal [:a, :b, :c, :d], groups.sort_by {|group| group.to_s }
499
- end
500
-
501
- def test_gemspec
502
- save_gemspec "a", 1 do |s|
503
- s.add_dependency "b", 2
504
- s.add_development_dependency "c", 3
505
- end
506
-
507
- @gda.gemspec
508
-
509
- assert_equal [dep("a", "= 1"), dep("b", "= 2"), dep("c", "=3")],
510
- @set.dependencies
511
-
512
- assert_equal %w[a], @gda.requires["a"]
513
-
514
- expected = {
515
- "a" => Gem::Requirement.create("!"),
516
- "b" => req("= 2"),
517
- "c" => req("= 3"),
518
- }
519
-
520
- assert_equal expected, @gda.dependencies
521
- end
522
-
523
- def test_gemspec_bad
524
- FileUtils.touch "a.gemspec"
525
-
526
- e = assert_raise ArgumentError do
527
- capture_output do
528
- @gda.gemspec
529
- end
530
- end
531
-
532
- assert_equal "invalid gemspec ./a.gemspec", e.message
533
- end
534
-
535
- def test_gemspec_development_group
536
- save_gemspec "a", 1 do |s|
537
- s.add_dependency "b", 2
538
- s.add_development_dependency "c", 3
539
- end
540
-
541
- @gda.without_groups << :other
542
-
543
- @gda.gemspec :development_group => :other
544
-
545
- assert_equal [dep("a", "= 1"), dep("b", "= 2")], @set.dependencies
546
-
547
- assert_equal %w[a], @gda.requires["a"]
548
- end
549
-
550
- def test_gemspec_multiple
551
- save_gemspec "a", 1 do |s|
552
- s.add_dependency "b", 2
553
- end
554
-
555
- save_gemspec "b", 2 do |s|
556
- s.add_dependency "c", 3
557
- end
558
-
559
- e = assert_raise ArgumentError do
560
- @gda.gemspec
561
- end
562
-
563
- assert_equal "found multiple gemspecs at #{@tempdir}, use the name: option to specify the one you want", e.message
564
- end
565
-
566
- def test_gemspec_name
567
- save_gemspec "a", 1 do |s|
568
- s.add_dependency "b", 2
569
- end
570
-
571
- save_gemspec "b", 2 do |s|
572
- s.add_dependency "c", 3
573
- end
574
-
575
- @gda.gemspec :name => "b"
576
-
577
- assert_equal [dep("b", "= 2"), dep("c", "= 3")], @set.dependencies
578
- end
579
-
580
- def test_gemspec_named
581
- save_gemspec "a", 1 do |s|
582
- s.add_dependency "b", 2
583
- end
584
-
585
- @gda.gemspec
586
-
587
- assert_equal [dep("a", "= 1"), dep("b", "= 2")], @set.dependencies
588
- end
589
-
590
- def test_gemspec_none
591
- e = assert_raise ArgumentError do
592
- @gda.gemspec
593
- end
594
-
595
- assert_equal "no gemspecs found at #{@tempdir}", e.message
596
- end
597
-
598
- def test_gemspec_path
599
- FileUtils.mkdir "other"
600
-
601
- save_gemspec "a", 1, "other" do |s|
602
- s.add_dependency "b", 2
603
- end
604
-
605
- @gda.gemspec :path => "other"
606
-
607
- assert_equal [dep("a", "= 1"), dep("b", "= 2")], @set.dependencies
608
- end
609
-
610
- def test_git
611
- @gda.git "git://example/repo.git" do
612
- @gda.gem "a"
613
- @gda.gem "b"
614
- end
615
-
616
- assert_equal [dep("a"), dep("b")], @set.dependencies
617
-
618
- assert_equal ["git://example/repo.git", nil], @git_set.repositories["a"]
619
- assert_equal ["git://example/repo.git", nil], @git_set.repositories["b"]
620
- end
621
-
622
- def test_git_source
623
- @gda.git_source :example do |repo_name|
624
- "git://example/#{repo_name}.git"
625
- end
626
-
627
- @gda.gem "a", :example => "repo"
628
-
629
- assert_equal ["git://example/repo.git", nil], @git_set.repositories["a"]
630
- end
631
-
632
- def test_group
633
- @gda.group :test do
634
- @gda.gem "a"
635
- end
636
-
637
- assert_equal [dep("a")], @set.dependencies
638
- end
639
-
640
- def test_load
641
- tf = Tempfile.open "gem.deps.rb" do |io|
642
- io.write <<-GEM_DEPS
643
- gem 'a'
644
-
645
- group :test do
646
- gem 'b'
647
- end
648
- GEM_DEPS
649
- io.flush
650
-
651
- gda = @GDA.new @set, io.path
652
-
653
- assert_equal gda, gda.load
654
-
655
- assert_equal [dep("a"), dep("b")], @set.dependencies
656
- io
657
- end
658
- tf.close!
659
- end
660
-
661
- def test_pin_gem_source
662
- gda = @GDA.new @set, nil
663
-
664
- gda.send :pin_gem_source, "a"
665
- gda.send :pin_gem_source, "a"
666
-
667
- e = assert_raise ArgumentError do
668
- gda.send :pin_gem_source, "a", :path, "vendor/a"
669
- end
670
-
671
- assert_equal "duplicate source path: vendor/a for gem a",
672
- e.message
673
-
674
- e = assert_raise ArgumentError do
675
- gda.send :pin_gem_source, "a", :git, "git://example/repo.git"
676
- end
677
-
678
- assert_equal "duplicate source git: git://example/repo.git for gem a",
679
- e.message
680
- end
681
-
682
- def test_platform_mswin
683
- if win_platform?
684
- util_set_arch "x86-mswin32-60" do
685
- @gda.platform :mswin do
686
- @gda.gem "a"
687
- end
688
-
689
- assert_equal [dep("a")], @set.dependencies
690
- refute_empty @set.dependencies
691
- end
692
- else
693
- util_set_arch "i686-darwin8.10.1" do
694
- @gda.platform :mswin do
695
- @gda.gem "a"
696
- end
697
-
698
- assert_empty @set.dependencies
699
- end
700
- end
701
- end
702
-
703
- def test_platform_multiple
704
- win_platform = Gem.win_platform?
705
- Gem.win_platform = false
706
-
707
- gda = @GDA.new @set, nil
708
-
709
- with_engine_version "ruby", "1.8.7" do
710
- gda.platform :mri_19, :mri_20 do
711
- gda.gem "a"
712
- end
713
- end
714
-
715
- assert_empty @set.dependencies
716
-
717
- gda = @GDA.new @set, nil
718
-
719
- with_engine_version "ruby", "2.0.0" do
720
- gda.platform :mri_19, :mri_20 do
721
- gda.gem "a"
722
- end
723
- end
724
-
725
- refute_empty @set.dependencies
726
- ensure
727
- Gem.win_platform = win_platform
728
- end
729
-
730
- def test_platform_ruby
731
- win_platform = Gem.win_platform?
732
- Gem.win_platform = false
733
-
734
- @gda.platform :ruby do
735
- @gda.gem "a"
736
- end
737
-
738
- assert_equal [dep("a")], @set.dependencies
739
- ensure
740
- Gem.win_platform = win_platform
741
- end
742
-
743
- def test_platforms
744
- unless win_platform?
745
- util_set_arch "i686-darwin8.10.1" do
746
- @gda.platforms :ruby do
747
- @gda.gem "a"
748
- end
749
-
750
- assert_equal [dep("a")], @set.dependencies
751
-
752
- @gda.platforms :mswin do
753
- @gda.gem "b"
754
- end
755
-
756
- assert_equal [dep("a")], @set.dependencies
757
- end
758
- end
759
- end
760
-
761
- def test_ruby
762
- assert @gda.ruby RUBY_VERSION
763
- end
764
-
765
- def test_ruby_engine
766
- with_engine_version "jruby", "1.7.6" do
767
- assert @gda.ruby RUBY_VERSION,
768
- :engine => "jruby", :engine_version => "1.7.6"
769
- end
770
-
771
- with_engine_version "truffleruby", "1.0.0-rc11" do
772
- assert @gda.ruby RUBY_VERSION,
773
- :engine => "truffleruby", :engine_version => "1.0.0-rc11"
774
- end
775
- end
776
-
777
- def test_ruby_engine_mismatch_engine
778
- with_engine_version "ruby", "2.0.0" do
779
- e = assert_raise Gem::RubyVersionMismatch do
780
- @gda.ruby RUBY_VERSION, :engine => "jruby", :engine_version => "1.7.4"
781
- end
782
-
783
- assert_equal "Your Ruby engine is ruby, but your gem.deps.rb requires jruby",
784
- e.message
785
- end
786
- end
787
-
788
- def test_ruby_engine_mismatch_version
789
- with_engine_version "jruby", "1.7.6" do
790
- e = assert_raise Gem::RubyVersionMismatch do
791
- @gda.ruby RUBY_VERSION, :engine => "jruby", :engine_version => "1.7.4"
792
- end
793
-
794
- assert_equal "Your Ruby engine version is jruby 1.7.6, but your gem.deps.rb requires jruby 1.7.4",
795
- e.message
796
- end
797
- end
798
-
799
- def test_ruby_engine_no_engine_version
800
- e = assert_raise ArgumentError do
801
- @gda.ruby RUBY_VERSION, :engine => "jruby"
802
- end
803
-
804
- assert_equal "You must specify engine_version along with the Ruby engine",
805
- e.message
806
- end
807
-
808
- def test_ruby_mismatch
809
- e = assert_raise Gem::RubyVersionMismatch do
810
- @gda.ruby "1.8.0"
811
- end
812
-
813
- assert_equal "Your Ruby version is #{RUBY_VERSION}, but your gem.deps.rb requires 1.8.0", e.message
814
- end
815
-
816
- def test_ruby_mismatch_installing
817
- @gda.installing = true
818
-
819
- assert @gda.ruby "1.8.0"
820
- end
821
-
822
- def test_source
823
- sources = Gem.sources
824
-
825
- @gda.source "http://first.example"
826
-
827
- assert_equal %w[http://first.example], Gem.sources
828
-
829
- assert_same sources, Gem.sources
830
-
831
- @gda.source "http://second.example"
832
-
833
- assert_equal %w[http://first.example http://second.example], Gem.sources
834
- end
835
-
836
- def test_with_engine_version
837
- version = RUBY_VERSION
838
- engine = Gem.ruby_engine
839
- engine_version = RUBY_ENGINE_VERSION
840
-
841
- with_engine_version "other", "1.2.3" do
842
- assert_equal "other", Gem.ruby_engine
843
- assert_equal "1.2.3", RUBY_ENGINE_VERSION
844
-
845
- assert_equal version, RUBY_VERSION
846
- end
847
-
848
- assert_equal version, RUBY_VERSION
849
- assert_equal engine, Gem.ruby_engine
850
-
851
- assert_equal engine_version, RUBY_ENGINE_VERSION if engine
852
- end
853
- end unless Gem.java_platform?