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,381 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "helper"
4
- require "rubygems/indexer"
5
-
6
- class TestGemIndexer < Gem::TestCase
7
- def setup
8
- super
9
-
10
- util_make_gems
11
-
12
- @d2_0 = util_spec "d", "2.0" do |s|
13
- s.date = Gem::Specification::TODAY - 86_400 * 3
14
- end
15
- util_build_gem @d2_0
16
-
17
- @d2_0_a = util_spec "d", "2.0.a"
18
- util_build_gem @d2_0_a
19
-
20
- @d2_0_b = util_spec "d", "2.0.b"
21
- util_build_gem @d2_0_b
22
-
23
- @default = new_default_spec "default", 2
24
- install_default_gems @default
25
-
26
- @indexerdir = File.join(@tempdir, "indexer")
27
-
28
- gems = File.join(@indexerdir, "gems")
29
- FileUtils.mkdir_p gems
30
- FileUtils.mv Dir[File.join(@gemhome, "cache", "*.gem")], gems
31
-
32
- @indexer = Gem::Indexer.new(@indexerdir)
33
- end
34
-
35
- def teardown
36
- FileUtils.rm_rf(@indexer.directory)
37
- ensure
38
- super
39
- end
40
-
41
- def with_indexer(dir, **opts)
42
- indexer = Gem::Indexer.new(dir, **opts)
43
- build_directory = indexer.directory
44
- yield indexer
45
- ensure
46
- FileUtils.rm_rf(build_directory) if build_directory
47
- end
48
-
49
- def test_initialize
50
- assert_equal @indexerdir, @indexer.dest_directory
51
- Dir.mktmpdir("gem_generate_index") do |tmpdir|
52
- assert_match %r{#{tmpdir.match(/.*-/)}}, @indexer.directory
53
- end
54
-
55
- with_indexer(@indexerdir) do |indexer|
56
- assert_predicate indexer, :build_modern
57
- end
58
-
59
- with_indexer(@indexerdir, :build_modern => true) do |indexer|
60
- assert_predicate indexer, :build_modern
61
- end
62
- end
63
-
64
- def test_build_indices
65
- @indexer.make_temp_directories
66
-
67
- use_ui @ui do
68
- @indexer.build_indices
69
- end
70
-
71
- specs_path = File.join @indexer.directory, "specs.#{@marshal_version}"
72
- specs_dump = Gem.read_binary specs_path
73
- specs = Marshal.load specs_dump
74
-
75
- expected = [["a", Gem::Version.new("1"), "ruby"],
76
- ["a", Gem::Version.new("2"), "ruby"],
77
- ["a_evil", Gem::Version.new("9"), "ruby"],
78
- ["b", Gem::Version.new("2"), "ruby"],
79
- ["c", Gem::Version.new("1.2"), "ruby"],
80
- ["d", Gem::Version.new("2.0"), "ruby"],
81
- ["dep_x", Gem::Version.new("1"), "ruby"],
82
- ["pl", Gem::Version.new("1"), "i386-linux"],
83
- ["x", Gem::Version.new("1"), "ruby"]]
84
-
85
- assert_equal expected, specs
86
-
87
- latest_specs_path = File.join(@indexer.directory,
88
- "latest_specs.#{@marshal_version}")
89
- latest_specs_dump = Gem.read_binary latest_specs_path
90
- latest_specs = Marshal.load latest_specs_dump
91
-
92
- expected = [["a", Gem::Version.new("2"), "ruby"],
93
- ["a_evil", Gem::Version.new("9"), "ruby"],
94
- ["b", Gem::Version.new("2"), "ruby"],
95
- ["c", Gem::Version.new("1.2"), "ruby"],
96
- ["d", Gem::Version.new("2.0"), "ruby"],
97
- ["dep_x", Gem::Version.new("1"), "ruby"],
98
- ["pl", Gem::Version.new("1"), "i386-linux"],
99
- ["x", Gem::Version.new("1"), "ruby"]]
100
-
101
- assert_equal expected, latest_specs, "latest_specs"
102
- end
103
-
104
- def test_generate_index
105
- use_ui @ui do
106
- @indexer.generate_index
107
- end
108
-
109
- quickdir = File.join @indexerdir, "quick"
110
- marshal_quickdir = File.join quickdir, "Marshal.#{@marshal_version}"
111
-
112
- assert_directory_exists quickdir
113
- assert_directory_exists marshal_quickdir
114
-
115
- assert_indexed marshal_quickdir, "#{File.basename(@a1.spec_file)}.rz"
116
- assert_indexed marshal_quickdir, "#{File.basename(@a2.spec_file)}.rz"
117
-
118
- refute_indexed marshal_quickdir, File.basename(@c1_2.spec_file)
119
-
120
- assert_indexed @indexerdir, "specs.#{@marshal_version}"
121
- assert_indexed @indexerdir, "specs.#{@marshal_version}.gz"
122
-
123
- assert_indexed @indexerdir, "latest_specs.#{@marshal_version}"
124
- assert_indexed @indexerdir, "latest_specs.#{@marshal_version}.gz"
125
-
126
- refute_directory_exists @indexer.directory
127
- end
128
-
129
- def test_generate_index_modern
130
- @indexer.build_modern = true
131
-
132
- use_ui @ui do
133
- @indexer.generate_index
134
- end
135
-
136
- refute_indexed @indexerdir, "yaml"
137
- refute_indexed @indexerdir, "yaml.Z"
138
- refute_indexed @indexerdir, "Marshal.#{@marshal_version}"
139
- refute_indexed @indexerdir, "Marshal.#{@marshal_version}.Z"
140
-
141
- quickdir = File.join @indexerdir, "quick"
142
- marshal_quickdir = File.join quickdir, "Marshal.#{@marshal_version}"
143
-
144
- assert_directory_exists quickdir, "quickdir should be directory"
145
- assert_directory_exists marshal_quickdir
146
-
147
- refute_indexed quickdir, "index"
148
- refute_indexed quickdir, "index.rz"
149
-
150
- refute_indexed quickdir, "latest_index"
151
- refute_indexed quickdir, "latest_index.rz"
152
-
153
- refute_indexed quickdir, "#{File.basename(@a1.spec_file)}.rz"
154
- refute_indexed quickdir, "#{File.basename(@a2.spec_file)}.rz"
155
- refute_indexed quickdir, "#{File.basename(@b2.spec_file)}.rz"
156
- refute_indexed quickdir, "#{File.basename(@c1_2.spec_file)}.rz"
157
-
158
- refute_indexed quickdir, "#{@pl1.original_name}.gemspec.rz"
159
- refute_indexed quickdir, "#{File.basename(@pl1.spec_file)}.rz"
160
-
161
- assert_indexed marshal_quickdir, "#{File.basename(@a1.spec_file)}.rz"
162
- assert_indexed marshal_quickdir, "#{File.basename(@a2.spec_file)}.rz"
163
-
164
- refute_indexed quickdir, "#{File.basename(@c1_2.spec_file)}"
165
- refute_indexed marshal_quickdir, "#{File.basename(@c1_2.spec_file)}"
166
-
167
- assert_indexed @indexerdir, "specs.#{@marshal_version}"
168
- assert_indexed @indexerdir, "specs.#{@marshal_version}.gz"
169
-
170
- assert_indexed @indexerdir, "latest_specs.#{@marshal_version}"
171
- assert_indexed @indexerdir, "latest_specs.#{@marshal_version}.gz"
172
- end
173
-
174
- def test_generate_index_modern_back_to_back
175
- @indexer.build_modern = true
176
-
177
- use_ui @ui do
178
- @indexer.generate_index
179
- end
180
-
181
- with_indexer @indexerdir do |indexer|
182
- indexer.build_modern = true
183
-
184
- use_ui @ui do
185
- indexer.generate_index
186
- end
187
- quickdir = File.join @indexerdir, "quick"
188
- marshal_quickdir = File.join quickdir, "Marshal.#{@marshal_version}"
189
-
190
- assert_directory_exists quickdir
191
- assert_directory_exists marshal_quickdir
192
-
193
- assert_indexed marshal_quickdir, "#{File.basename(@a1.spec_file)}.rz"
194
- assert_indexed marshal_quickdir, "#{File.basename(@a2.spec_file)}.rz"
195
-
196
- assert_indexed @indexerdir, "specs.#{@marshal_version}"
197
- assert_indexed @indexerdir, "specs.#{@marshal_version}.gz"
198
-
199
- assert_indexed @indexerdir, "latest_specs.#{@marshal_version}"
200
- assert_indexed @indexerdir, "latest_specs.#{@marshal_version}.gz"
201
- end
202
- end
203
-
204
- def test_generate_index_ui
205
- use_ui @ui do
206
- @indexer.generate_index
207
- end
208
-
209
- assert_match %r{^\.\.\.\.\.\.\.\.\.\.\.\.$}, @ui.output
210
- assert_match %r{^Generating Marshal quick index gemspecs for 12 gems$},
211
- @ui.output
212
- assert_match %r{^Complete$}, @ui.output
213
- assert_match %r{^Generating specs index$}, @ui.output
214
- assert_match %r{^Generating latest specs index$}, @ui.output
215
- assert_match %r{^Generating prerelease specs index$}, @ui.output
216
- assert_match %r{^Complete$}, @ui.output
217
- assert_match %r{^Compressing indices$}, @ui.output
218
-
219
- assert_equal "", @ui.error
220
- end
221
-
222
- def test_generate_index_specs
223
- use_ui @ui do
224
- @indexer.generate_index
225
- end
226
-
227
- specs_path = File.join @indexerdir, "specs.#{@marshal_version}"
228
-
229
- specs_dump = Gem.read_binary specs_path
230
- specs = Marshal.load specs_dump
231
-
232
- expected = [
233
- ["a", Gem::Version.new(1), "ruby"],
234
- ["a", Gem::Version.new(2), "ruby"],
235
- ["a_evil", Gem::Version.new(9), "ruby"],
236
- ["b", Gem::Version.new(2), "ruby"],
237
- ["c", Gem::Version.new("1.2"), "ruby"],
238
- ["d", Gem::Version.new("2.0"), "ruby"],
239
- ["dep_x", Gem::Version.new(1), "ruby"],
240
- ["pl", Gem::Version.new(1), "i386-linux"],
241
- ["x", Gem::Version.new(1), "ruby"],
242
- ]
243
-
244
- assert_equal expected, specs
245
-
246
- assert_same specs[0].first, specs[1].first,
247
- "identical names not identical"
248
-
249
- assert_same specs[0][1], specs[-1][1],
250
- "identical versions not identical"
251
-
252
- assert_same specs[0].last, specs[1].last,
253
- "identical platforms not identical"
254
-
255
- refute_same specs[1][1], specs[5][1],
256
- "different versions not different"
257
- end
258
-
259
- def test_generate_index_latest_specs
260
- use_ui @ui do
261
- @indexer.generate_index
262
- end
263
-
264
- latest_specs_path = File.join @indexerdir, "latest_specs.#{@marshal_version}"
265
-
266
- latest_specs_dump = Gem.read_binary latest_specs_path
267
- latest_specs = Marshal.load latest_specs_dump
268
-
269
- expected = [
270
- ["a", Gem::Version.new(2), "ruby"],
271
- ["a_evil", Gem::Version.new(9), "ruby"],
272
- ["b", Gem::Version.new(2), "ruby"],
273
- ["c", Gem::Version.new("1.2"), "ruby"],
274
- ["d", Gem::Version.new("2.0"), "ruby"],
275
- ["dep_x", Gem::Version.new(1), "ruby"],
276
- ["pl", Gem::Version.new(1), "i386-linux"],
277
- ["x", Gem::Version.new(1), "ruby"],
278
- ]
279
-
280
- assert_equal expected, latest_specs
281
-
282
- assert_same latest_specs[0][1], latest_specs[2][1],
283
- "identical versions not identical"
284
-
285
- assert_same latest_specs[0].last, latest_specs[1].last,
286
- "identical platforms not identical"
287
- end
288
-
289
- def test_generate_index_prerelease_specs
290
- use_ui @ui do
291
- @indexer.generate_index
292
- end
293
-
294
- prerelease_specs_path = File.join @indexerdir, "prerelease_specs.#{@marshal_version}"
295
-
296
- prerelease_specs_dump = Gem.read_binary prerelease_specs_path
297
- prerelease_specs = Marshal.load prerelease_specs_dump
298
-
299
- assert_equal [["a", Gem::Version.new("3.a"), "ruby"],
300
- ["d", Gem::Version.new("2.0.a"), "ruby"],
301
- ["d", Gem::Version.new("2.0.b"), "ruby"]],
302
- prerelease_specs
303
- end
304
-
305
- ##
306
- # Emulate the starting state of Gem::Specification in a live environment,
307
- # where it will carry the list of system gems
308
- def with_system_gems
309
- Gem::Specification.reset
310
-
311
- sys_gem = util_spec "systemgem", "1.0"
312
- util_build_gem sys_gem
313
- install_default_gems sys_gem
314
- yield
315
- util_remove_gem sys_gem
316
- end
317
-
318
- def test_update_index
319
- use_ui @ui do
320
- @indexer.generate_index
321
- end
322
-
323
- quickdir = File.join @indexerdir, "quick"
324
- marshal_quickdir = File.join quickdir, "Marshal.#{@marshal_version}"
325
-
326
- assert_directory_exists quickdir
327
- assert_directory_exists marshal_quickdir
328
-
329
- @d2_1 = util_spec "d", "2.1"
330
- util_build_gem @d2_1
331
- @d2_1_tuple = [@d2_1.name, @d2_1.version, @d2_1.original_platform]
332
-
333
- @d2_1_a = util_spec "d", "2.2.a"
334
- util_build_gem @d2_1_a
335
- @d2_1_a_tuple = [@d2_1_a.name, @d2_1_a.version, @d2_1_a.original_platform]
336
-
337
- gems = File.join @indexerdir, "gems"
338
-
339
- FileUtils.mv @d2_1.cache_file, gems
340
- FileUtils.mv @d2_1_a.cache_file, gems
341
-
342
- with_system_gems do
343
- use_ui @ui do
344
- @indexer.update_index
345
- end
346
-
347
- assert_indexed marshal_quickdir, "#{File.basename(@d2_1.spec_file)}.rz"
348
-
349
- specs_index = Marshal.load Gem.read_binary(@indexer.dest_specs_index)
350
-
351
- assert_includes specs_index, @d2_1_tuple
352
- refute_includes specs_index, @d2_1_a_tuple
353
-
354
- latest_specs_index = Marshal.load \
355
- Gem.read_binary(@indexer.dest_latest_specs_index)
356
-
357
- assert_includes latest_specs_index, @d2_1_tuple
358
- assert_includes latest_specs_index,
359
- [@d2_0.name, @d2_0.version, @d2_0.original_platform]
360
- refute_includes latest_specs_index, @d2_1_a_tuple
361
-
362
- pre_specs_index = Marshal.load \
363
- Gem.read_binary(@indexer.dest_prerelease_specs_index)
364
-
365
- assert_includes pre_specs_index, @d2_1_a_tuple
366
- refute_includes pre_specs_index, @d2_1_tuple
367
-
368
- refute_directory_exists @indexer.directory
369
- end
370
- end
371
-
372
- def assert_indexed(dir, name)
373
- file = File.join dir, name
374
- assert File.exist?(file), "#{file} does not exist"
375
- end
376
-
377
- def refute_indexed(dir, name)
378
- file = File.join dir, name
379
- refute File.exist?(file), "#{file} exists"
380
- end
381
- end
@@ -1,208 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "installer_test_case"
4
- require "rubygems/install_update_options"
5
- require "rubygems/command"
6
- require "rubygems/dependency_installer"
7
-
8
- class TestGemInstallUpdateOptions < Gem::InstallerTestCase
9
- def setup
10
- super
11
-
12
- @cmd = Gem::Command.new "dummy", "dummy",
13
- Gem::DependencyInstaller::DEFAULT_OPTIONS
14
- @cmd.extend Gem::InstallUpdateOptions
15
- @cmd.add_install_update_options
16
- end
17
-
18
- def test_add_install_update_options
19
- args = %w[
20
- --document
21
- --build-root build_root
22
- --format-exec
23
- --ignore-dependencies
24
- --document
25
- -E
26
- -f
27
- -i /install_to
28
- -w
29
- --post-install-message
30
- ]
31
-
32
- args.concat %w[--vendor] unless Gem.java_platform?
33
-
34
- args.concat %w[-P HighSecurity] if Gem::HAVE_OPENSSL
35
-
36
- assert @cmd.handles?(args)
37
- end
38
-
39
- def test_build_root
40
- @cmd.handle_options %w[--build-root build_root]
41
-
42
- assert_equal File.expand_path("build_root"), @cmd.options[:build_root]
43
- end
44
-
45
- def test_doc
46
- @cmd.handle_options %w[--doc]
47
-
48
- assert_equal %w[ri], @cmd.options[:document].sort
49
- end
50
-
51
- def test_doc_rdoc
52
- @cmd.handle_options %w[--doc=rdoc]
53
-
54
- assert_equal %w[rdoc], @cmd.options[:document]
55
-
56
- @cmd.handle_options %w[--doc ri]
57
-
58
- assert_equal %w[ri], @cmd.options[:document]
59
- end
60
-
61
- def test_doc_rdoc_ri
62
- @cmd.handle_options %w[--doc=rdoc,ri]
63
-
64
- assert_equal %w[rdoc ri], @cmd.options[:document]
65
- end
66
-
67
- def test_doc_no
68
- @cmd.handle_options %w[--no-doc]
69
-
70
- assert_equal [], @cmd.options[:document]
71
- end
72
-
73
- def test_document
74
- @cmd.handle_options %w[--document]
75
-
76
- assert_equal %w[ri], @cmd.options[:document].sort
77
- end
78
-
79
- def test_document_no
80
- @cmd.handle_options %w[--no-document]
81
-
82
- assert_equal %w[], @cmd.options[:document]
83
- end
84
-
85
- def test_document_rdoc
86
- @cmd.handle_options %w[--document=rdoc]
87
-
88
- assert_equal %w[rdoc], @cmd.options[:document]
89
-
90
- @cmd.handle_options %w[--document ri]
91
-
92
- assert_equal %w[ri], @cmd.options[:document]
93
- end
94
-
95
- def test_security_policy
96
- pend "openssl is missing" unless Gem::HAVE_OPENSSL
97
-
98
- @cmd.handle_options %w[-P HighSecurity]
99
-
100
- assert_equal Gem::Security::HighSecurity, @cmd.options[:security_policy]
101
- end
102
-
103
- def test_security_policy_unknown
104
- pend "openssl is missing" unless Gem::HAVE_OPENSSL
105
-
106
- @cmd.add_install_update_options
107
-
108
- e = assert_raise Gem::OptionParser::InvalidArgument do
109
- @cmd.handle_options %w[-P UnknownSecurity]
110
- end
111
- assert_includes e.message, "UnknownSecurity"
112
- end
113
-
114
- def test_user_install_enabled
115
- @spec = quick_gem "a" do |spec|
116
- util_make_exec spec
117
- end
118
-
119
- util_build_gem @spec
120
- @gem = @spec.cache_file
121
-
122
- @cmd.handle_options %w[--user-install]
123
-
124
- assert @cmd.options[:user_install]
125
-
126
- @installer = Gem::Installer.at @gem, @cmd.options
127
- @installer.install
128
- assert_path_exist File.join(Gem.user_dir, "gems")
129
- assert_path_exist File.join(Gem.user_dir, "gems", @spec.full_name)
130
- end
131
-
132
- def test_user_install_disabled_read_only
133
- @spec = quick_gem "a" do |spec|
134
- util_make_exec spec
135
- end
136
-
137
- util_build_gem @spec
138
- @gem = @spec.cache_file
139
-
140
- if win_platform?
141
- pend("test_user_install_disabled_read_only test skipped on MS Windows")
142
- elsif Process.uid.zero?
143
- pend("test_user_install_disabled_read_only test skipped in root privilege")
144
- else
145
- @cmd.handle_options %w[--no-user-install]
146
-
147
- refute @cmd.options[:user_install]
148
-
149
- FileUtils.chmod 0o755, @userhome
150
- FileUtils.chmod 0o000, @gemhome
151
-
152
- Gem.use_paths @gemhome, @userhome
153
-
154
- assert_raise(Gem::FilePermissionError) do
155
- Gem::Installer.at(@gem, @cmd.options).install
156
- end
157
- end
158
- ensure
159
- FileUtils.chmod 0o755, @gemhome
160
- end
161
-
162
- def test_vendor
163
- vendordir(File.join(@tempdir, "vendor")) do
164
- @cmd.handle_options %w[--vendor]
165
-
166
- assert @cmd.options[:vendor]
167
- assert_equal Gem.vendor_dir, @cmd.options[:install_dir]
168
- end
169
- end
170
-
171
- def test_vendor_missing
172
- vendordir(nil) do
173
- e = assert_raise Gem::OptionParser::InvalidOption do
174
- @cmd.handle_options %w[--vendor]
175
- end
176
-
177
- assert_equal "invalid option: --vendor your platform is not supported",
178
- e.message
179
-
180
- refute @cmd.options[:vendor]
181
- refute @cmd.options[:install_dir]
182
- end
183
- end
184
-
185
- def test_post_install_message_no
186
- @cmd.handle_options %w[--no-post-install-message]
187
-
188
- assert_equal false, @cmd.options[:post_install_message]
189
- end
190
-
191
- def test_post_install_message
192
- @cmd.handle_options %w[--post-install-message]
193
-
194
- assert_equal true, @cmd.options[:post_install_message]
195
- end
196
-
197
- def test_minimal_deps_no
198
- @cmd.handle_options %w[--no-minimal-deps]
199
-
200
- assert_equal false, @cmd.options[:minimal_deps]
201
- end
202
-
203
- def test_minimal_deps
204
- @cmd.handle_options %w[--minimal-deps]
205
-
206
- assert_equal true, @cmd.options[:minimal_deps]
207
- end
208
- end