rubygems-update 3.4.22 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (528) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +99 -2
  3. data/Manifest.txt +34 -221
  4. data/README.md +1 -3
  5. data/bundler/CHANGELOG.md +53 -0
  6. data/bundler/bundler.gemspec +4 -2
  7. data/bundler/exe/bundle +1 -10
  8. data/bundler/lib/bundler/build_metadata.rb +3 -3
  9. data/bundler/lib/bundler/capistrano.rb +1 -1
  10. data/bundler/lib/bundler/checksum.rb +245 -0
  11. data/bundler/lib/bundler/ci_detector.rb +75 -0
  12. data/bundler/lib/bundler/cli/add.rb +3 -3
  13. data/bundler/lib/bundler/cli/binstubs.rb +4 -4
  14. data/bundler/lib/bundler/cli/cache.rb +1 -1
  15. data/bundler/lib/bundler/cli/check.rb +1 -1
  16. data/bundler/lib/bundler/cli/common.rb +9 -1
  17. data/bundler/lib/bundler/cli/config.rb +8 -7
  18. data/bundler/lib/bundler/cli/console.rb +3 -2
  19. data/bundler/lib/bundler/cli/doctor.rb +2 -2
  20. data/bundler/lib/bundler/cli/exec.rb +1 -1
  21. data/bundler/lib/bundler/cli/gem.rb +28 -23
  22. data/bundler/lib/bundler/cli/info.rb +2 -13
  23. data/bundler/lib/bundler/cli/install.rb +5 -4
  24. data/bundler/lib/bundler/cli/issue.rb +1 -1
  25. data/bundler/lib/bundler/cli/lock.rb +4 -4
  26. data/bundler/lib/bundler/cli/open.rb +1 -1
  27. data/bundler/lib/bundler/cli/outdated.rb +6 -6
  28. data/bundler/lib/bundler/cli/plugin.rb +7 -14
  29. data/bundler/lib/bundler/cli/pristine.rb +38 -30
  30. data/bundler/lib/bundler/cli/show.rb +2 -2
  31. data/bundler/lib/bundler/cli/update.rb +5 -5
  32. data/bundler/lib/bundler/cli.rb +215 -263
  33. data/bundler/lib/bundler/compact_index_client/cache.rb +29 -9
  34. data/bundler/lib/bundler/compact_index_client/cache_file.rb +153 -0
  35. data/bundler/lib/bundler/compact_index_client/gem_parser.rb +7 -3
  36. data/bundler/lib/bundler/compact_index_client/updater.rb +79 -81
  37. data/bundler/lib/bundler/compact_index_client.rb +14 -7
  38. data/bundler/lib/bundler/constants.rb +1 -1
  39. data/bundler/lib/bundler/current_ruby.rb +5 -21
  40. data/bundler/lib/bundler/definition.rb +42 -15
  41. data/bundler/lib/bundler/dependency.rb +16 -12
  42. data/bundler/lib/bundler/digest.rb +2 -2
  43. data/bundler/lib/bundler/dsl.rb +43 -25
  44. data/bundler/lib/bundler/endpoint_specification.rb +5 -1
  45. data/bundler/lib/bundler/env.rb +1 -3
  46. data/bundler/lib/bundler/errors.rb +43 -0
  47. data/bundler/lib/bundler/fetcher/base.rb +3 -1
  48. data/bundler/lib/bundler/fetcher/compact_index.rb +4 -4
  49. data/bundler/lib/bundler/fetcher/downloader.rb +13 -11
  50. data/bundler/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
  51. data/bundler/lib/bundler/fetcher/index.rb +1 -1
  52. data/bundler/lib/bundler/fetcher.rb +28 -25
  53. data/bundler/lib/bundler/friendly_errors.rb +5 -5
  54. data/bundler/lib/bundler/gem_helper.rb +1 -1
  55. data/bundler/lib/bundler/gem_helpers.rb +5 -2
  56. data/bundler/lib/bundler/graph.rb +9 -9
  57. data/bundler/lib/bundler/index.rb +1 -2
  58. data/bundler/lib/bundler/injector.rb +1 -1
  59. data/bundler/lib/bundler/inline.rb +3 -3
  60. data/bundler/lib/bundler/installer/gem_installer.rb +5 -5
  61. data/bundler/lib/bundler/installer/parallel_installer.rb +16 -8
  62. data/bundler/lib/bundler/installer/standalone.rb +2 -3
  63. data/bundler/lib/bundler/installer.rb +9 -9
  64. data/bundler/lib/bundler/lazy_specification.rb +24 -17
  65. data/bundler/lib/bundler/lockfile_generator.rb +9 -0
  66. data/bundler/lib/bundler/lockfile_parser.rb +81 -10
  67. data/bundler/lib/bundler/man/bundle-add.1 +3 -26
  68. data/bundler/lib/bundler/man/bundle-binstubs.1 +4 -16
  69. data/bundler/lib/bundler/man/bundle-cache.1 +3 -24
  70. data/bundler/lib/bundler/man/bundle-check.1 +3 -12
  71. data/bundler/lib/bundler/man/bundle-clean.1 +3 -10
  72. data/bundler/lib/bundler/man/bundle-config.1 +20 -211
  73. data/bundler/lib/bundler/man/bundle-config.1.ronn +6 -0
  74. data/bundler/lib/bundler/man/bundle-console.1 +4 -22
  75. data/bundler/lib/bundler/man/bundle-doctor.1 +4 -18
  76. data/bundler/lib/bundler/man/bundle-exec.1 +12 -73
  77. data/bundler/lib/bundler/man/bundle-gem.1 +13 -49
  78. data/bundler/lib/bundler/man/bundle-help.1 +3 -7
  79. data/bundler/lib/bundler/man/bundle-info.1 +3 -9
  80. data/bundler/lib/bundler/man/bundle-init.1 +3 -12
  81. data/bundler/lib/bundler/man/bundle-inject.1 +6 -19
  82. data/bundler/lib/bundler/man/bundle-install.1 +27 -125
  83. data/bundler/lib/bundler/man/bundle-install.1.ronn +1 -0
  84. data/bundler/lib/bundler/man/bundle-list.1 +4 -19
  85. data/bundler/lib/bundler/man/bundle-lock.1 +5 -29
  86. data/bundler/lib/bundler/man/bundle-open.1 +7 -27
  87. data/bundler/lib/bundler/man/bundle-outdated.1 +3 -55
  88. data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -0
  89. data/bundler/lib/bundler/man/bundle-platform.1 +5 -27
  90. data/bundler/lib/bundler/man/bundle-plugin.1 +3 -29
  91. data/bundler/lib/bundler/man/bundle-pristine.1 +5 -16
  92. data/bundler/lib/bundler/man/bundle-remove.1 +4 -14
  93. data/bundler/lib/bundler/man/bundle-show.1 +3 -10
  94. data/bundler/lib/bundler/man/bundle-update.1 +18 -137
  95. data/bundler/lib/bundler/man/bundle-version.1 +3 -16
  96. data/bundler/lib/bundler/man/bundle-viz.1 +4 -16
  97. data/bundler/lib/bundler/man/bundle.1 +5 -44
  98. data/bundler/lib/bundler/man/gemfile.5 +24 -301
  99. data/bundler/lib/bundler/man/gemfile.5.ronn +4 -0
  100. data/bundler/lib/bundler/match_metadata.rb +4 -0
  101. data/bundler/lib/bundler/match_platform.rb +1 -1
  102. data/bundler/lib/bundler/plugin/api/source.rb +3 -2
  103. data/bundler/lib/bundler/plugin/installer.rb +1 -1
  104. data/bundler/lib/bundler/plugin.rb +3 -3
  105. data/bundler/lib/bundler/resolver/base.rb +1 -1
  106. data/bundler/lib/bundler/resolver/incompatibility.rb +1 -1
  107. data/bundler/lib/bundler/resolver/spec_group.rb +1 -4
  108. data/bundler/lib/bundler/resolver.rb +16 -16
  109. data/bundler/lib/bundler/ruby_dsl.rb +20 -12
  110. data/bundler/lib/bundler/ruby_version.rb +1 -1
  111. data/bundler/lib/bundler/rubygems_ext.rb +24 -50
  112. data/bundler/lib/bundler/rubygems_gem_installer.rb +6 -56
  113. data/bundler/lib/bundler/rubygems_integration.rb +25 -94
  114. data/bundler/lib/bundler/runtime.rb +2 -2
  115. data/bundler/lib/bundler/self_manager.rb +23 -7
  116. data/bundler/lib/bundler/settings.rb +27 -7
  117. data/bundler/lib/bundler/setup.rb +4 -1
  118. data/bundler/lib/bundler/shared_helpers.rb +35 -13
  119. data/bundler/lib/bundler/source/git/git_proxy.rb +15 -15
  120. data/bundler/lib/bundler/source/git.rb +4 -3
  121. data/bundler/lib/bundler/source/metadata.rb +15 -15
  122. data/bundler/lib/bundler/source/path.rb +7 -6
  123. data/bundler/lib/bundler/source/rubygems.rb +21 -14
  124. data/bundler/lib/bundler/source.rb +2 -0
  125. data/bundler/lib/bundler/spec_set.rb +38 -10
  126. data/bundler/lib/bundler/stub_specification.rb +1 -0
  127. data/bundler/lib/bundler/templates/Executable.bundler +1 -1
  128. data/bundler/lib/bundler/templates/newgem/README.md.tt +3 -3
  129. data/bundler/lib/bundler/templates/newgem/Rakefile.tt +2 -6
  130. data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +1 -1
  131. data/bundler/lib/bundler/templates/newgem/standard.yml.tt +1 -1
  132. data/bundler/lib/bundler/ui/shell.rb +1 -1
  133. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  134. data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +53 -6
  135. data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +8 -20
  136. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +3 -3
  137. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +2 -2
  138. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
  139. data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +35 -35
  140. data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +3 -0
  141. data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +256 -132
  142. data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1 -0
  143. data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +95 -31
  144. data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  145. data/bundler/lib/bundler/vendored_net_http.rb +8 -0
  146. data/bundler/lib/bundler/vendored_persistent.rb +0 -4
  147. data/bundler/lib/bundler/vendored_timeout.rb +8 -0
  148. data/bundler/lib/bundler/version.rb +1 -1
  149. data/bundler/lib/bundler/vlad.rb +1 -1
  150. data/bundler/lib/bundler/yaml_serializer.rb +3 -3
  151. data/bundler/lib/bundler.rb +38 -27
  152. data/lib/rubygems/available_set.rb +4 -4
  153. data/lib/rubygems/basic_specification.rb +35 -37
  154. data/lib/rubygems/bundler_version_finder.rb +4 -4
  155. data/lib/rubygems/ci_detector.rb +75 -0
  156. data/lib/rubygems/command.rb +13 -15
  157. data/lib/rubygems/command_manager.rb +5 -4
  158. data/lib/rubygems/commands/build_command.rb +2 -2
  159. data/lib/rubygems/commands/cert_command.rb +1 -2
  160. data/lib/rubygems/commands/check_command.rb +4 -4
  161. data/lib/rubygems/commands/cleanup_command.rb +12 -14
  162. data/lib/rubygems/commands/contents_command.rb +4 -4
  163. data/lib/rubygems/commands/dependency_command.rb +4 -5
  164. data/lib/rubygems/commands/environment_command.rb +1 -3
  165. data/lib/rubygems/commands/exec_command.rb +1 -1
  166. data/lib/rubygems/commands/fetch_command.rb +2 -2
  167. data/lib/rubygems/commands/generate_index_command.rb +39 -74
  168. data/lib/rubygems/commands/help_command.rb +3 -3
  169. data/lib/rubygems/commands/info_command.rb +2 -2
  170. data/lib/rubygems/commands/install_command.rb +8 -16
  171. data/lib/rubygems/commands/list_command.rb +2 -2
  172. data/lib/rubygems/commands/lock_command.rb +1 -1
  173. data/lib/rubygems/commands/open_command.rb +1 -1
  174. data/lib/rubygems/commands/owner_command.rb +1 -1
  175. data/lib/rubygems/commands/pristine_command.rb +13 -15
  176. data/lib/rubygems/commands/push_command.rb +2 -2
  177. data/lib/rubygems/commands/query_command.rb +4 -5
  178. data/lib/rubygems/commands/rdoc_command.rb +2 -2
  179. data/lib/rubygems/commands/search_command.rb +2 -2
  180. data/lib/rubygems/commands/setup_command.rb +31 -34
  181. data/lib/rubygems/commands/sources_command.rb +12 -12
  182. data/lib/rubygems/commands/specification_command.rb +10 -10
  183. data/lib/rubygems/commands/stale_command.rb +1 -1
  184. data/lib/rubygems/commands/uninstall_command.rb +9 -10
  185. data/lib/rubygems/commands/unpack_command.rb +4 -4
  186. data/lib/rubygems/commands/update_command.rb +10 -12
  187. data/lib/rubygems/commands/which_command.rb +1 -1
  188. data/lib/rubygems/commands/yank_command.rb +1 -1
  189. data/lib/rubygems/compatibility.rb +5 -6
  190. data/lib/rubygems/config_file.rb +4 -4
  191. data/lib/rubygems/core_ext/kernel_gem.rb +0 -2
  192. data/lib/rubygems/core_ext/kernel_require.rb +19 -48
  193. data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
  194. data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
  195. data/lib/rubygems/defaults.rb +15 -3
  196. data/lib/rubygems/dependency.rb +12 -14
  197. data/lib/rubygems/dependency_installer.rb +29 -30
  198. data/lib/rubygems/dependency_list.rb +1 -1
  199. data/lib/rubygems/deprecate.rb +16 -15
  200. data/lib/rubygems/doctor.rb +5 -5
  201. data/lib/rubygems/errors.rb +2 -6
  202. data/lib/rubygems/exceptions.rb +2 -1
  203. data/lib/rubygems/ext/builder.rb +15 -10
  204. data/lib/rubygems/ext/cargo_builder.rb +5 -5
  205. data/lib/rubygems/ext/ext_conf_builder.rb +1 -3
  206. data/lib/rubygems/gem_runner.rb +4 -4
  207. data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +3 -3
  208. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -3
  209. data/lib/rubygems/gemcutter_utilities.rb +18 -19
  210. data/lib/rubygems/install_update_options.rb +18 -19
  211. data/lib/rubygems/installer.rb +59 -33
  212. data/lib/rubygems/installer_uninstaller_utils.rb +0 -2
  213. data/lib/rubygems/local_remote_options.rb +7 -10
  214. data/lib/rubygems/name_tuple.rb +7 -9
  215. data/lib/rubygems/net/http.rb +3 -0
  216. data/lib/rubygems/net-http/LICENSE.txt +22 -0
  217. data/lib/rubygems/net-http/lib/net/http/backward.rb +40 -0
  218. data/lib/rubygems/net-http/lib/net/http/exceptions.rb +34 -0
  219. data/lib/rubygems/net-http/lib/net/http/generic_request.rb +414 -0
  220. data/lib/rubygems/net-http/lib/net/http/header.rb +981 -0
  221. data/lib/rubygems/net-http/lib/net/http/proxy_delta.rb +17 -0
  222. data/lib/rubygems/net-http/lib/net/http/request.rb +88 -0
  223. data/lib/rubygems/net-http/lib/net/http/requests.rb +425 -0
  224. data/lib/rubygems/net-http/lib/net/http/response.rb +738 -0
  225. data/lib/rubygems/net-http/lib/net/http/responses.rb +1174 -0
  226. data/lib/rubygems/net-http/lib/net/http/status.rb +84 -0
  227. data/lib/rubygems/net-http/lib/net/http.rb +2496 -0
  228. data/lib/rubygems/net-http/lib/net/https.rb +23 -0
  229. data/lib/rubygems/net-protocol/LICENSE.txt +22 -0
  230. data/lib/rubygems/net-protocol/lib/net/protocol.rb +544 -0
  231. data/lib/rubygems/optparse/lib/optparse.rb +39 -17
  232. data/lib/rubygems/package/old.rb +2 -2
  233. data/lib/rubygems/package/tar_header.rb +45 -39
  234. data/lib/rubygems/package/tar_reader/entry.rb +5 -4
  235. data/lib/rubygems/package/tar_reader.rb +5 -3
  236. data/lib/rubygems/package/tar_writer.rb +19 -17
  237. data/lib/rubygems/package.rb +27 -26
  238. data/lib/rubygems/package_task.rb +2 -2
  239. data/lib/rubygems/path_support.rb +9 -10
  240. data/lib/rubygems/platform.rb +60 -45
  241. data/lib/rubygems/query_utils.rb +7 -9
  242. data/lib/rubygems/remote_fetcher.rb +15 -15
  243. data/lib/rubygems/request/connection_pools.rb +3 -3
  244. data/lib/rubygems/request.rb +20 -17
  245. data/lib/rubygems/request_set/gem_dependency_api.rb +119 -122
  246. data/lib/rubygems/request_set/lockfile/parser.rb +9 -9
  247. data/lib/rubygems/request_set/lockfile/tokenizer.rb +20 -12
  248. data/lib/rubygems/request_set/lockfile.rb +6 -11
  249. data/lib/rubygems/request_set.rb +5 -5
  250. data/lib/rubygems/requirement.rb +7 -7
  251. data/lib/rubygems/resolv/LICENSE.txt +22 -0
  252. data/lib/rubygems/resolv/lib/resolv.rb +3387 -0
  253. data/lib/rubygems/resolver/activation_request.rb +1 -3
  254. data/lib/rubygems/resolver/api_set/gem_parser.rb +7 -3
  255. data/lib/rubygems/resolver/best_set.rb +1 -1
  256. data/lib/rubygems/resolver/composed_set.rb +1 -1
  257. data/lib/rubygems/resolver/conflict.rb +4 -12
  258. data/lib/rubygems/resolver/index_set.rb +4 -4
  259. data/lib/rubygems/resolver/index_specification.rb +2 -2
  260. data/lib/rubygems/resolver/installer_set.rb +5 -6
  261. data/lib/rubygems/resolver/lock_set.rb +1 -1
  262. data/lib/rubygems/resolver.rb +3 -10
  263. data/lib/rubygems/s3_uri_signer.rb +6 -6
  264. data/lib/rubygems/safe_marshal/elements.rb +138 -0
  265. data/lib/rubygems/safe_marshal/reader.rb +306 -0
  266. data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
  267. data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +385 -0
  268. data/lib/rubygems/safe_marshal/visitors/visitor.rb +74 -0
  269. data/lib/rubygems/safe_marshal.rb +74 -0
  270. data/lib/rubygems/safe_yaml.rb +5 -28
  271. data/lib/rubygems/security/policies.rb +36 -38
  272. data/lib/rubygems/security/policy.rb +7 -11
  273. data/lib/rubygems/security/signer.rb +1 -1
  274. data/lib/rubygems/security/trust_dir.rb +3 -3
  275. data/lib/rubygems/security.rb +8 -22
  276. data/lib/rubygems/source/git.rb +1 -3
  277. data/lib/rubygems/source/installed.rb +0 -2
  278. data/lib/rubygems/source/local.rb +5 -8
  279. data/lib/rubygems/source/lock.rb +1 -3
  280. data/lib/rubygems/source/specific_file.rb +0 -1
  281. data/lib/rubygems/source/vendor.rb +0 -2
  282. data/lib/rubygems/source.rb +12 -12
  283. data/lib/rubygems/source_list.rb +4 -4
  284. data/lib/rubygems/spec_fetcher.rb +29 -29
  285. data/lib/rubygems/specification.rb +125 -138
  286. data/lib/rubygems/specification_policy.rb +55 -25
  287. data/lib/rubygems/stub_specification.rb +4 -5
  288. data/lib/rubygems/text.rb +1 -2
  289. data/lib/rubygems/timeout/LICENSE.txt +22 -0
  290. data/lib/rubygems/timeout/lib/timeout.rb +199 -0
  291. data/lib/rubygems/timeout.rb +3 -0
  292. data/lib/rubygems/tsort/lib/tsort.rb +3 -0
  293. data/lib/rubygems/uninstaller.rb +7 -9
  294. data/lib/rubygems/update_suggestion.rb +5 -18
  295. data/lib/rubygems/uri_formatter.rb +1 -1
  296. data/lib/rubygems/user_interaction.rb +15 -21
  297. data/lib/rubygems/util/licenses.rb +65 -35
  298. data/lib/rubygems/util/list.rb +3 -1
  299. data/lib/rubygems/util.rb +2 -4
  300. data/lib/rubygems/validator.rb +5 -3
  301. data/lib/rubygems/version.rb +34 -28
  302. data/lib/rubygems/version_option.rb +2 -5
  303. data/lib/rubygems/yaml_serializer.rb +3 -3
  304. data/lib/rubygems.rb +37 -37
  305. data/rubygems-update.gemspec +4 -4
  306. data/setup.rb +2 -2
  307. metadata +38 -225
  308. data/lib/rubygems/indexer.rb +0 -428
  309. data/lib/rubygems/mock_gem_ui.rb +0 -86
  310. data/test/rubygems/alternate_cert.pem +0 -19
  311. data/test/rubygems/alternate_cert_32.pem +0 -19
  312. data/test/rubygems/alternate_key.pem +0 -27
  313. data/test/rubygems/bad_rake.rb +0 -3
  314. data/test/rubygems/bundler_test_gem.rb +0 -424
  315. data/test/rubygems/ca_cert.pem +0 -77
  316. data/test/rubygems/child_cert.pem +0 -19
  317. data/test/rubygems/child_cert_32.pem +0 -19
  318. data/test/rubygems/child_key.pem +0 -27
  319. data/test/rubygems/client.pem +0 -107
  320. data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
  321. data/test/rubygems/data/gem-private_key.pem +0 -27
  322. data/test/rubygems/data/gem-public_cert.pem +0 -20
  323. data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
  324. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  325. data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
  326. data/test/rubygems/encrypted_private_key.pem +0 -30
  327. data/test/rubygems/expired_cert.pem +0 -19
  328. data/test/rubygems/fake_certlib/openssl.rb +0 -9
  329. data/test/rubygems/foo/discover.rb +0 -1
  330. data/test/rubygems/future_cert.pem +0 -19
  331. data/test/rubygems/future_cert_32.pem +0 -19
  332. data/test/rubygems/good_rake.rb +0 -3
  333. data/test/rubygems/grandchild_cert.pem +0 -19
  334. data/test/rubygems/grandchild_cert_32.pem +0 -19
  335. data/test/rubygems/grandchild_key.pem +0 -27
  336. data/test/rubygems/helper.rb +0 -1649
  337. data/test/rubygems/installer_test_case.rb +0 -248
  338. data/test/rubygems/invalid_client.pem +0 -49
  339. data/test/rubygems/invalid_issuer_cert.pem +0 -20
  340. data/test/rubygems/invalid_issuer_cert_32.pem +0 -20
  341. data/test/rubygems/invalid_key.pem +0 -27
  342. data/test/rubygems/invalid_signer_cert.pem +0 -19
  343. data/test/rubygems/invalid_signer_cert_32.pem +0 -19
  344. data/test/rubygems/invalidchild_cert.pem +0 -19
  345. data/test/rubygems/invalidchild_cert_32.pem +0 -19
  346. data/test/rubygems/invalidchild_key.pem +0 -27
  347. data/test/rubygems/multifactor_auth_utilities.rb +0 -111
  348. data/test/rubygems/package/tar_test_case.rb +0 -175
  349. data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
  350. data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
  351. data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
  352. data/test/rubygems/plugin/exception/rubygems_plugin.rb +0 -4
  353. data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -5
  354. data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -4
  355. data/test/rubygems/private3072_key.pem +0 -40
  356. data/test/rubygems/private_ec_key.pem +0 -9
  357. data/test/rubygems/private_key.pem +0 -27
  358. data/test/rubygems/public3072_cert.pem +0 -25
  359. data/test/rubygems/public_cert.pem +0 -20
  360. data/test/rubygems/public_cert_32.pem +0 -19
  361. data/test/rubygems/public_key.pem +0 -9
  362. data/test/rubygems/rubygems/commands/crash_command.rb +0 -5
  363. data/test/rubygems/rubygems_plugin.rb +0 -24
  364. data/test/rubygems/sff/discover.rb +0 -1
  365. data/test/rubygems/simple_gem.rb +0 -68
  366. data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -9
  367. data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
  368. data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +0 -14
  369. data/test/rubygems/ssl_cert.pem +0 -80
  370. data/test/rubygems/ssl_key.pem +0 -27
  371. data/test/rubygems/test_bundled_ca.rb +0 -61
  372. data/test/rubygems/test_config.rb +0 -28
  373. data/test/rubygems/test_deprecate.rb +0 -158
  374. data/test/rubygems/test_exit.rb +0 -17
  375. data/test/rubygems/test_gem.rb +0 -1799
  376. data/test/rubygems/test_gem_available_set.rb +0 -130
  377. data/test/rubygems/test_gem_bundler_version_finder.rb +0 -127
  378. data/test/rubygems/test_gem_command.rb +0 -403
  379. data/test/rubygems/test_gem_command_manager.rb +0 -400
  380. data/test/rubygems/test_gem_commands_build_command.rb +0 -739
  381. data/test/rubygems/test_gem_commands_cert_command.rb +0 -866
  382. data/test/rubygems/test_gem_commands_check_command.rb +0 -68
  383. data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -292
  384. data/test/rubygems/test_gem_commands_contents_command.rb +0 -271
  385. data/test/rubygems/test_gem_commands_dependency_command.rb +0 -228
  386. data/test/rubygems/test_gem_commands_environment_command.rb +0 -169
  387. data/test/rubygems/test_gem_commands_exec_command.rb +0 -857
  388. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -258
  389. data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -81
  390. data/test/rubygems/test_gem_commands_help_command.rb +0 -94
  391. data/test/rubygems/test_gem_commands_info_command.rb +0 -70
  392. data/test/rubygems/test_gem_commands_install_command.rb +0 -1573
  393. data/test/rubygems/test_gem_commands_list_command.rb +0 -33
  394. data/test/rubygems/test_gem_commands_lock_command.rb +0 -67
  395. data/test/rubygems/test_gem_commands_mirror.rb +0 -20
  396. data/test/rubygems/test_gem_commands_open_command.rb +0 -101
  397. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -50
  398. data/test/rubygems/test_gem_commands_owner_command.rb +0 -503
  399. data/test/rubygems/test_gem_commands_pristine_command.rb +0 -708
  400. data/test/rubygems/test_gem_commands_push_command.rb +0 -603
  401. data/test/rubygems/test_gem_commands_query_command.rb +0 -858
  402. data/test/rubygems/test_gem_commands_search_command.rb +0 -16
  403. data/test/rubygems/test_gem_commands_server_command.rb +0 -20
  404. data/test/rubygems/test_gem_commands_setup_command.rb +0 -474
  405. data/test/rubygems/test_gem_commands_signin_command.rb +0 -259
  406. data/test/rubygems/test_gem_commands_signout_command.rb +0 -30
  407. data/test/rubygems/test_gem_commands_sources_command.rb +0 -534
  408. data/test/rubygems/test_gem_commands_specification_command.rb +0 -277
  409. data/test/rubygems/test_gem_commands_stale_command.rb +0 -43
  410. data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -542
  411. data/test/rubygems/test_gem_commands_unpack_command.rb +0 -224
  412. data/test/rubygems/test_gem_commands_update_command.rb +0 -836
  413. data/test/rubygems/test_gem_commands_which_command.rb +0 -85
  414. data/test/rubygems/test_gem_commands_yank_command.rb +0 -299
  415. data/test/rubygems/test_gem_config_file.rb +0 -551
  416. data/test/rubygems/test_gem_dependency.rb +0 -398
  417. data/test/rubygems/test_gem_dependency_installer.rb +0 -1190
  418. data/test/rubygems/test_gem_dependency_list.rb +0 -265
  419. data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -27
  420. data/test/rubygems/test_gem_doctor.rb +0 -195
  421. data/test/rubygems/test_gem_ext_builder.rb +0 -337
  422. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +0 -1
  423. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +0 -10
  424. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +0 -249
  425. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +0 -10
  426. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +0 -27
  427. data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +0 -3
  428. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +0 -1
  429. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +0 -249
  430. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +0 -10
  431. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +0 -10
  432. data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +0 -51
  433. data/test/rubygems/test_gem_ext_cargo_builder.rb +0 -167
  434. data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +0 -34
  435. data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -60
  436. data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -84
  437. data/test/rubygems/test_gem_ext_configure_builder.rb +0 -80
  438. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -229
  439. data/test/rubygems/test_gem_ext_rake_builder.rb +0 -113
  440. data/test/rubygems/test_gem_gem_runner.rb +0 -119
  441. data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -361
  442. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -60
  443. data/test/rubygems/test_gem_indexer.rb +0 -381
  444. data/test/rubygems/test_gem_install_update_options.rb +0 -208
  445. data/test/rubygems/test_gem_installer.rb +0 -2512
  446. data/test/rubygems/test_gem_local_remote_options.rb +0 -133
  447. data/test/rubygems/test_gem_name_tuple.rb +0 -43
  448. data/test/rubygems/test_gem_package.rb +0 -1306
  449. data/test/rubygems/test_gem_package_old.rb +0 -91
  450. data/test/rubygems/test_gem_package_tar_header.rb +0 -226
  451. data/test/rubygems/test_gem_package_tar_reader.rb +0 -150
  452. data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -350
  453. data/test/rubygems/test_gem_package_tar_writer.rb +0 -331
  454. data/test/rubygems/test_gem_package_task.rb +0 -118
  455. data/test/rubygems/test_gem_path_support.rb +0 -139
  456. data/test/rubygems/test_gem_platform.rb +0 -497
  457. data/test/rubygems/test_gem_rdoc.rb +0 -137
  458. data/test/rubygems/test_gem_remote_fetcher.rb +0 -1227
  459. data/test/rubygems/test_gem_request.rb +0 -547
  460. data/test/rubygems/test_gem_request_connection_pools.rb +0 -152
  461. data/test/rubygems/test_gem_request_set.rb +0 -672
  462. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -853
  463. data/test/rubygems/test_gem_request_set_lockfile.rb +0 -469
  464. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -544
  465. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -307
  466. data/test/rubygems/test_gem_requirement.rb +0 -505
  467. data/test/rubygems/test_gem_resolver.rb +0 -859
  468. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -43
  469. data/test/rubygems/test_gem_resolver_api_set.rb +0 -210
  470. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -167
  471. data/test/rubygems/test_gem_resolver_best_set.rb +0 -159
  472. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -44
  473. data/test/rubygems/test_gem_resolver_conflict.rb +0 -82
  474. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -83
  475. data/test/rubygems/test_gem_resolver_git_set.rb +0 -188
  476. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -114
  477. data/test/rubygems/test_gem_resolver_index_set.rb +0 -88
  478. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -93
  479. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -47
  480. data/test/rubygems/test_gem_resolver_installer_set.rb +0 -320
  481. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -44
  482. data/test/rubygems/test_gem_resolver_lock_set.rb +0 -62
  483. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -98
  484. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -19
  485. data/test/rubygems/test_gem_resolver_specification.rb +0 -63
  486. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -82
  487. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -82
  488. data/test/rubygems/test_gem_security.rb +0 -341
  489. data/test/rubygems/test_gem_security_policy.rb +0 -535
  490. data/test/rubygems/test_gem_security_signer.rb +0 -218
  491. data/test/rubygems/test_gem_security_trust_dir.rb +0 -99
  492. data/test/rubygems/test_gem_silent_ui.rb +0 -123
  493. data/test/rubygems/test_gem_source.rb +0 -254
  494. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -37
  495. data/test/rubygems/test_gem_source_git.rb +0 -310
  496. data/test/rubygems/test_gem_source_installed.rb +0 -35
  497. data/test/rubygems/test_gem_source_list.rb +0 -119
  498. data/test/rubygems/test_gem_source_local.rb +0 -107
  499. data/test/rubygems/test_gem_source_lock.rb +0 -113
  500. data/test/rubygems/test_gem_source_specific_file.rb +0 -76
  501. data/test/rubygems/test_gem_source_subpath_problem.rb +0 -50
  502. data/test/rubygems/test_gem_source_vendor.rb +0 -30
  503. data/test/rubygems/test_gem_spec_fetcher.rb +0 -338
  504. data/test/rubygems/test_gem_specification.rb +0 -3856
  505. data/test/rubygems/test_gem_stream_ui.rb +0 -255
  506. data/test/rubygems/test_gem_stub_specification.rb +0 -278
  507. data/test/rubygems/test_gem_text.rb +0 -103
  508. data/test/rubygems/test_gem_uninstaller.rb +0 -675
  509. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -31
  510. data/test/rubygems/test_gem_update_suggestion.rb +0 -209
  511. data/test/rubygems/test_gem_uri.rb +0 -41
  512. data/test/rubygems/test_gem_uri_formatter.rb +0 -27
  513. data/test/rubygems/test_gem_util.rb +0 -91
  514. data/test/rubygems/test_gem_validator.rb +0 -42
  515. data/test/rubygems/test_gem_version.rb +0 -305
  516. data/test/rubygems/test_gem_version_option.rb +0 -165
  517. data/test/rubygems/test_kernel.rb +0 -124
  518. data/test/rubygems/test_project_sanity.rb +0 -49
  519. data/test/rubygems/test_remote_fetch_error.rb +0 -20
  520. data/test/rubygems/test_require.rb +0 -732
  521. data/test/rubygems/test_rubygems.rb +0 -76
  522. data/test/rubygems/test_webauthn_listener.rb +0 -143
  523. data/test/rubygems/test_webauthn_listener_response.rb +0 -93
  524. data/test/rubygems/test_webauthn_poller.rb +0 -124
  525. data/test/rubygems/utilities.rb +0 -436
  526. data/test/rubygems/wrong_key_cert.pem +0 -19
  527. data/test/rubygems/wrong_key_cert_32.pem +0 -19
  528. data/test/test_changelog_generator.rb +0 -17
@@ -1,505 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/requirement"
5
-
6
- class TestGemRequirement < Gem::TestCase
7
- def test_concat
8
- r = req ">= 1"
9
-
10
- r.concat ["< 2"]
11
-
12
- assert_equal [[">=", v(1)], ["<", v(2)]], r.requirements
13
- end
14
-
15
- def test_equals2
16
- r = req "= 1.2"
17
- assert_equal r, r.dup
18
- assert_equal r.dup, r
19
-
20
- refute_requirement_equal "= 1.2", "= 1.3"
21
- refute_requirement_equal "= 1.3", "= 1.2"
22
-
23
- refute_requirement_equal "~> 1.3", "~> 1.3.0"
24
- refute_requirement_equal "~> 1.3.0", "~> 1.3"
25
-
26
- assert_requirement_equal ["> 2", "~> 1.3", "~> 1.3.1"], ["~> 1.3.1", "~> 1.3", "> 2"]
27
-
28
- assert_requirement_equal ["> 2", "~> 1.3"], ["> 2.0", "~> 1.3"]
29
- assert_requirement_equal ["> 2.0", "~> 1.3"], ["> 2", "~> 1.3"]
30
-
31
- refute_equal Object.new, req("= 1.2")
32
- refute_equal req("= 1.2"), Object.new
33
- end
34
-
35
- def test_initialize
36
- assert_requirement_equal "= 2", "2"
37
- assert_requirement_equal "= 2", ["2"]
38
- assert_requirement_equal "= 2", v(2)
39
- assert_requirement_equal "2.0", "2"
40
- end
41
-
42
- def test_create
43
- assert_equal req("= 1"), Gem::Requirement.create("= 1")
44
- assert_equal req(">= 1.2", "<= 1.3"), Gem::Requirement.create([">= 1.2", "<= 1.3"])
45
- assert_equal req(">= 1.2", "<= 1.3"), Gem::Requirement.create(">= 1.2", "<= 1.3")
46
- end
47
-
48
- def test_empty_requirements_is_none
49
- r = Gem::Requirement.new
50
- assert_equal true, r.none?
51
- end
52
-
53
- def test_explicit_default_is_none
54
- r = Gem::Requirement.new ">= 0"
55
- assert_equal true, r.none?
56
- end
57
-
58
- def test_basic_non_none
59
- r = Gem::Requirement.new "= 1"
60
- assert_equal false, r.none?
61
- end
62
-
63
- def test_for_lockfile
64
- assert_equal " (~> 1.0)", req("~> 1.0").for_lockfile
65
-
66
- assert_equal " (~> 1.0, >= 1.0.1)", req(">= 1.0.1", "~> 1.0").for_lockfile
67
-
68
- duped = req "= 1.0"
69
- duped.requirements << ["=", v("1.0")]
70
-
71
- assert_equal " (= 1.0)", duped.for_lockfile
72
-
73
- assert_nil Gem::Requirement.default.for_lockfile
74
- end
75
-
76
- def test_parse
77
- assert_equal ["=", Gem::Version.new(1)], Gem::Requirement.parse(" 1")
78
- assert_equal ["=", Gem::Version.new(1)], Gem::Requirement.parse("= 1")
79
- assert_equal [">", Gem::Version.new(1)], Gem::Requirement.parse("> 1")
80
- assert_equal ["=", Gem::Version.new(1)], Gem::Requirement.parse("=\n1")
81
- assert_equal ["=", Gem::Version.new(1)], Gem::Requirement.parse("1.0")
82
-
83
- assert_equal ["=", Gem::Version.new(2)],
84
- Gem::Requirement.parse(Gem::Version.new("2"))
85
- end
86
-
87
- unless (Gem.java_platform? && ENV["JRUBY_OPTS"].to_s.include?("--debug"))
88
- def test_parse_deduplication
89
- assert_same "~>", Gem::Requirement.parse("~> 1").first
90
- end
91
- end
92
-
93
- def test_parse_bad
94
- [
95
- nil,
96
- "",
97
- "! 1",
98
- "= junk",
99
- "1..2",
100
- ].each do |bad|
101
- e = assert_raise Gem::Requirement::BadRequirementError do
102
- Gem::Requirement.parse bad
103
- end
104
-
105
- assert_equal "Illformed requirement [#{bad.inspect}]", e.message
106
- end
107
-
108
- assert_equal Gem::Requirement::BadRequirementError.superclass, ArgumentError
109
- end
110
-
111
- def test_prerelease_eh
112
- r = req "= 1"
113
-
114
- refute r.prerelease?
115
-
116
- r = req "= 1.a"
117
-
118
- assert r.prerelease?
119
-
120
- r = req "> 1.a", "< 2"
121
-
122
- assert r.prerelease?
123
- end
124
-
125
- def test_satisfied_by_eh_bang_equal
126
- r = req "!= 1.2"
127
-
128
- assert_satisfied_by "1.1", r
129
- refute_satisfied_by "1.2", r
130
- assert_satisfied_by "1.3", r
131
-
132
- assert_raise ArgumentError do
133
- Gem::Deprecate.skip_during do
134
- assert_satisfied_by nil, r
135
- end
136
- end
137
- end
138
-
139
- def test_satisfied_by_eh_blank
140
- r = req "1.2"
141
-
142
- refute_satisfied_by "1.1", r
143
- assert_satisfied_by "1.2", r
144
- refute_satisfied_by "1.3", r
145
-
146
- assert_raise ArgumentError do
147
- Gem::Deprecate.skip_during do
148
- assert_satisfied_by nil, r
149
- end
150
- end
151
- end
152
-
153
- def test_satisfied_by_eh_equal
154
- r = req "= 1.2"
155
-
156
- refute_satisfied_by "1.1", r
157
- assert_satisfied_by "1.2", r
158
- refute_satisfied_by "1.3", r
159
-
160
- assert_raise ArgumentError do
161
- Gem::Deprecate.skip_during do
162
- assert_satisfied_by nil, r
163
- end
164
- end
165
- end
166
-
167
- def test_satisfied_by_eh_gt
168
- r = req "> 1.2"
169
-
170
- refute_satisfied_by "1.1", r
171
- refute_satisfied_by "1.2", r
172
- assert_satisfied_by "1.3", r
173
-
174
- assert_raise ArgumentError do
175
- r.satisfied_by? nil
176
- end
177
- end
178
-
179
- def test_satisfied_by_eh_gte
180
- r = req ">= 1.2"
181
-
182
- refute_satisfied_by "1.1", r
183
- assert_satisfied_by "1.2", r
184
- assert_satisfied_by "1.3", r
185
-
186
- assert_raise ArgumentError do
187
- r.satisfied_by? nil
188
- end
189
- end
190
-
191
- def test_satisfied_by_eh_list
192
- r = req "> 1.1", "< 1.3"
193
-
194
- refute_satisfied_by "1.1", r
195
- assert_satisfied_by "1.2", r
196
- refute_satisfied_by "1.3", r
197
-
198
- assert_raise ArgumentError do
199
- r.satisfied_by? nil
200
- end
201
- end
202
-
203
- def test_satisfied_by_eh_lt
204
- r = req "< 1.2"
205
-
206
- assert_satisfied_by "1.1", r
207
- refute_satisfied_by "1.2", r
208
- refute_satisfied_by "1.3", r
209
-
210
- assert_raise ArgumentError do
211
- r.satisfied_by? nil
212
- end
213
- end
214
-
215
- def test_satisfied_by_eh_lte
216
- r = req "<= 1.2"
217
-
218
- assert_satisfied_by "1.1", r
219
- assert_satisfied_by "1.2", r
220
- refute_satisfied_by "1.3", r
221
-
222
- assert_raise ArgumentError do
223
- r.satisfied_by? nil
224
- end
225
- end
226
-
227
- def test_satisfied_by_eh_tilde_gt
228
- r = req "~> 1.2"
229
-
230
- refute_satisfied_by "1.1", r
231
- assert_satisfied_by "1.2", r
232
- assert_satisfied_by "1.3", r
233
-
234
- assert_raise ArgumentError do
235
- r.satisfied_by? nil
236
- end
237
- end
238
-
239
- def test_satisfied_by_eh_tilde_gt_v0
240
- r = req "~> 0.0.1"
241
-
242
- refute_satisfied_by "0.1.1", r
243
- assert_satisfied_by "0.0.2", r
244
- assert_satisfied_by "0.0.1", r
245
- end
246
-
247
- def test_satisfied_by_eh_good
248
- assert_satisfied_by "0.2.33", "= 0.2.33"
249
- assert_satisfied_by "0.2.34", "> 0.2.33"
250
- assert_satisfied_by "1.0", "= 1.0"
251
- assert_satisfied_by "1.0.0", "= 1.0"
252
- assert_satisfied_by "1.0", "= 1.0.0"
253
- assert_satisfied_by "1.0", "1.0"
254
- assert_satisfied_by "1.8.2", "> 1.8.0"
255
- assert_satisfied_by "1.112", "> 1.111"
256
- assert_satisfied_by "0.2", "> 0.0.0"
257
- assert_satisfied_by "0.0.0.0.0.2", "> 0.0.0"
258
- assert_satisfied_by "0.0.1.0", "> 0.0.0.1"
259
- assert_satisfied_by "10.3.2", "> 9.3.2"
260
- assert_satisfied_by "1.0.0.0", "= 1.0"
261
- assert_satisfied_by "10.3.2", "!= 9.3.4"
262
- assert_satisfied_by "10.3.2", "> 9.3.2"
263
- assert_satisfied_by " 9.3.2", ">= 9.3.2"
264
- assert_satisfied_by "9.3.2 ", ">= 9.3.2"
265
- assert_satisfied_by "", "= 0"
266
- assert_satisfied_by "", "< 0.1"
267
- assert_satisfied_by " ", "< 0.1 "
268
- assert_satisfied_by "", " < 0.1"
269
- assert_satisfied_by " ", "> 0.a "
270
- assert_satisfied_by "", " > 0.a"
271
- assert_satisfied_by "3.1", "< 3.2.rc1"
272
-
273
- assert_satisfied_by "3.2.0", "> 3.2.0.rc1"
274
- assert_satisfied_by "3.2.0.rc2", "> 3.2.0.rc1"
275
-
276
- assert_satisfied_by "3.0.rc2", "< 3.0"
277
- assert_satisfied_by "3.0.rc2", "< 3.0.0"
278
- assert_satisfied_by "3.0.rc2", "< 3.0.1"
279
-
280
- assert_satisfied_by "3.0.rc2", "> 0"
281
-
282
- assert_satisfied_by "5.0.0.rc2", "~> 5.a"
283
- refute_satisfied_by "5.0.0.rc2", "~> 5.x"
284
-
285
- assert_satisfied_by "5.0.0", "~> 5.a"
286
- assert_satisfied_by "5.0.0", "~> 5.x"
287
- end
288
-
289
- def test_illformed_requirements
290
- [ ">>> 1.3.5", "> blah" ].each do |rq|
291
- assert_raise Gem::Requirement::BadRequirementError, "req [#{rq}] should fail" do
292
- Gem::Requirement.new rq
293
- end
294
- end
295
- end
296
-
297
- def test_satisfied_by_eh_non_versions
298
- assert_raise ArgumentError do
299
- req(">= 0").satisfied_by? Object.new
300
- end
301
-
302
- assert_raise ArgumentError do
303
- req(">= 0").satisfied_by? Gem::Requirement.default
304
- end
305
- end
306
-
307
- def test_satisfied_by_eh_boxed
308
- refute_satisfied_by "1.3", "~> 1.4"
309
- assert_satisfied_by "1.4", "~> 1.4"
310
- assert_satisfied_by "1.5", "~> 1.4"
311
- refute_satisfied_by "2.0", "~> 1.4"
312
-
313
- refute_satisfied_by "1.3", "~> 1.4.4"
314
- refute_satisfied_by "1.4", "~> 1.4.4"
315
- assert_satisfied_by "1.4.4", "~> 1.4.4"
316
- assert_satisfied_by "1.4.5", "~> 1.4.4"
317
- refute_satisfied_by "1.5", "~> 1.4.4"
318
- refute_satisfied_by "2.0", "~> 1.4.4"
319
-
320
- refute_satisfied_by "1.1.pre", "~> 1.0.0"
321
- refute_satisfied_by "1.1.pre", "~> 1.1"
322
- refute_satisfied_by "2.0.a", "~> 1.0"
323
- refute_satisfied_by "2.0.a", "~> 2.0"
324
-
325
- refute_satisfied_by "0.9", "~> 1"
326
- assert_satisfied_by "1.0", "~> 1"
327
- assert_satisfied_by "1.1", "~> 1"
328
- refute_satisfied_by "2.0", "~> 1"
329
- end
330
-
331
- def test_satisfied_by_eh_multiple
332
- req = [">= 1.4", "<= 1.6", "!= 1.5"]
333
-
334
- refute_satisfied_by "1.3", req
335
- assert_satisfied_by "1.4", req
336
- refute_satisfied_by "1.5", req
337
- assert_satisfied_by "1.6", req
338
- refute_satisfied_by "1.7", req
339
- refute_satisfied_by "2.0", req
340
- end
341
-
342
- def test_satisfied_by_boxed
343
- refute_satisfied_by "1.3", "~> 1.4"
344
- assert_satisfied_by "1.4", "~> 1.4"
345
- assert_satisfied_by "1.4.0", "~> 1.4"
346
- assert_satisfied_by "1.5", "~> 1.4"
347
- refute_satisfied_by "2.0", "~> 1.4"
348
-
349
- refute_satisfied_by "1.3", "~> 1.4.4"
350
- refute_satisfied_by "1.4", "~> 1.4.4"
351
- assert_satisfied_by "1.4.4", "~> 1.4.4"
352
- assert_satisfied_by "1.4.5", "~> 1.4.4"
353
- refute_satisfied_by "1.5", "~> 1.4.4"
354
- refute_satisfied_by "2.0", "~> 1.4.4"
355
- end
356
-
357
- def test_satisfied_by_explicitly_bounded
358
- req = [">= 1.4.4", "< 1.5"]
359
-
360
- assert_satisfied_by "1.4.5", req
361
- assert_satisfied_by "1.5.0.rc1", req
362
- refute_satisfied_by "1.5.0", req
363
-
364
- req = [">= 1.4.4", "< 1.5.a"]
365
-
366
- assert_satisfied_by "1.4.5", req
367
- refute_satisfied_by "1.5.0.rc1", req
368
- refute_satisfied_by "1.5.0", req
369
- end
370
-
371
- def test_specific
372
- refute req("> 1") .specific?
373
- refute req(">= 1").specific?
374
-
375
- assert req("!= 1").specific?
376
- assert req("< 1") .specific?
377
- assert req("<= 1").specific?
378
- assert req("= 1") .specific?
379
- assert req("~> 1").specific?
380
-
381
- assert req("> 1", "> 2").specific? # GIGO
382
- end
383
-
384
- def test_bad
385
- refute_satisfied_by "", "> 0.1"
386
- refute_satisfied_by "1.2.3", "!= 1.2.3"
387
- refute_satisfied_by "1.2.003.0.0", "!= 1.02.3"
388
- refute_satisfied_by "4.5.6", "< 1.2.3"
389
- refute_satisfied_by "1.0", "> 1.1"
390
- refute_satisfied_by "", "= 0.1"
391
- refute_satisfied_by "1.1.1", "> 1.1.1"
392
- refute_satisfied_by "1.2", "= 1.1"
393
- refute_satisfied_by "1.40", "= 1.1"
394
- refute_satisfied_by "1.3", "= 1.40"
395
- refute_satisfied_by "9.3.3", "<= 9.3.2"
396
- refute_satisfied_by "9.3.1", ">= 9.3.2"
397
- refute_satisfied_by "9.3.03", "<= 9.3.2"
398
- refute_satisfied_by "1.0.0.1", "= 1.0"
399
- end
400
-
401
- def test_hash_with_multiple_versions
402
- r1 = req("1.0", "2.0")
403
- r2 = req("2.0", "1.0")
404
- assert_equal r1.hash, r2.hash
405
-
406
- r1 = req("1.0", "2.0").tap {|r| r.concat(["3.0"]) }
407
- r2 = req("3.0", "1.0").tap {|r| r.concat(["2.0"]) }
408
- assert_equal r1.hash, r2.hash
409
- end
410
-
411
- def test_hash_returns_equal_hashes_for_equivalent_requirements
412
- refute_requirement_hash_equal "= 1.2", "= 1.3"
413
- refute_requirement_hash_equal "= 1.3", "= 1.2"
414
-
415
- refute_requirement_hash_equal "~> 1.3", "~> 1.3.0"
416
- refute_requirement_hash_equal "~> 1.3.0", "~> 1.3"
417
-
418
- assert_requirement_hash_equal ["> 2", "~> 1.3", "~> 1.3.1"], ["~> 1.3.1", "~> 1.3", "> 2"]
419
-
420
- assert_requirement_hash_equal ["> 2", "~> 1.3"], ["> 2.0", "~> 1.3"]
421
- assert_requirement_hash_equal ["> 2.0", "~> 1.3"], ["> 2", "~> 1.3"]
422
-
423
- assert_requirement_hash_equal "= 1.0", "= 1.0.0"
424
- assert_requirement_hash_equal "= 1.1", "= 1.1.0"
425
- assert_requirement_hash_equal "= 1", "= 1.0.0"
426
-
427
- assert_requirement_hash_equal "1.0", "1.0.0"
428
- assert_requirement_hash_equal "1.1", "1.1.0"
429
- assert_requirement_hash_equal "1", "1.0.0"
430
- end
431
-
432
- class Exploit < RuntimeError
433
- end
434
-
435
- def self.exploit(arg)
436
- raise Exploit, "arg = #{arg}"
437
- end
438
-
439
- def test_marshal_load_attack
440
- wa = Net::WriteAdapter.allocate
441
- wa.instance_variable_set(:@socket, self.class)
442
- wa.instance_variable_set(:@method_id, :exploit)
443
- request_set = Gem::RequestSet.allocate
444
- request_set.instance_variable_set(:@git_set, "id")
445
- request_set.instance_variable_set(:@sets, wa)
446
- wa = Net::WriteAdapter.allocate
447
- wa.instance_variable_set(:@socket, request_set)
448
- wa.instance_variable_set(:@method_id, :resolve)
449
- ent = Gem::Package::TarReader::Entry.allocate
450
- ent.instance_variable_set(:@read, 0)
451
- ent.instance_variable_set(:@header, "aaa")
452
- io = Net::BufferedIO.allocate
453
- io.instance_variable_set(:@io, ent)
454
- io.instance_variable_set(:@debug_output, wa)
455
- reader = Gem::Package::TarReader.allocate
456
- reader.instance_variable_set(:@io, io)
457
- requirement = Gem::Requirement.allocate
458
- requirement.instance_variable_set(:@requirements, reader)
459
- m = [Gem::SpecFetcher, Gem::Installer, requirement]
460
- e = assert_raise(TypeError) do
461
- Marshal.load(Marshal.dump(m))
462
- end
463
- assert_equal(e.message, "wrong @requirements")
464
- end
465
-
466
- # Assert that two requirements are equal. Handles Gem::Requirements,
467
- # strings, arrays, numbers, and versions.
468
-
469
- def assert_requirement_equal(expected, actual)
470
- assert_equal req(expected), req(actual)
471
- end
472
-
473
- # Assert that +version+ satisfies +requirement+.
474
-
475
- def assert_satisfied_by(version, requirement)
476
- assert req(requirement).satisfied_by?(v(version)),
477
- "#{requirement} is satisfied by #{version}"
478
- end
479
-
480
- # Assert that two requirement hashes are equal. Handles Gem::Requirements,
481
- # strings, arrays, numbers, and versions.
482
-
483
- def assert_requirement_hash_equal(expected, actual)
484
- assert_equal req(expected).hash, req(actual).hash
485
- end
486
-
487
- # Refute the assumption that two requirements are equal.
488
-
489
- def refute_requirement_equal(unexpected, actual)
490
- refute_equal req(unexpected), req(actual)
491
- end
492
-
493
- # Refute the assumption that +version+ satisfies +requirement+.
494
-
495
- def refute_satisfied_by(version, requirement)
496
- refute req(requirement).satisfied_by?(v(version)),
497
- "#{requirement} is not satisfied by #{version}"
498
- end
499
-
500
- # Refute the assumption that two requirements hashes are equal.
501
-
502
- def refute_requirement_hash_equal(unexpected, actual)
503
- refute_equal req(unexpected).hash, req(actual).hash
504
- end
505
- end