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