aboutsummaryrefslogtreecommitdiffstats
path: root/test/rubygems/test_gem.rb
Commit message (Collapse)AuthorAgeFilesLines
* Merge prepare version of RubyGems 3.2.0Hiroshi SHIBATA2020-12-081-3/+3
|
* Revert "Manually merged from https://github.com/rubygems/rubygems/pull/2636"Hiroshi SHIBATA2020-09-231-2/+0
| | | | | 31a6eaabc165d8a222e176f2c809d90622d88ec2 is obsoleted with https://github.com/rubygems/rubygems/pull/3820
* Manually merged from https://github.com/rubygems/rubygems/pull/2636Hiroshi SHIBATA2020-09-231-0/+2
| | | | Enable Style/EmptyLinesAroundClassBody rubocop cop.
* Enforce no empty lines around class body in rubygemsDavid Rodríguez2020-07-311-2/+0
| | | | To normalize the code style with `bundler`.
* Use space inside block braces everywhereDavid Rodríguez2020-06-151-26/+26
| | | | To make rubygems code style consistent with bundler.
* [rubygems/rubygems] Require open3 before using itDavid Rodríguez2020-05-081-0/+1
| | | | | | Otherwise if this test file is run in isolation, this test will fail. https://github.com/rubygems/rubygems/commit/79da003948
* [rubygems/rubygems] Now `Dir.tmpdir` is fixed and there's never such a folderDavid Rodríguez2020-05-081-4/+0
| | | | https://github.com/rubygems/rubygems/commit/44ebbded12
* [rubygems/rubygems] Show gemspec location when a Gem::MissingSpecError is ↵bronzdoc2020-05-081-0/+1
| | | | | | raised while trying to activate a gem https://github.com/rubygems/rubygems/commit/4da54a8e8b
* [rubygems/rubygems] Fix incorrect bundler version being requiredDavid Rodríguez2020-05-081-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In ruby 2.7.0, there's a slight change in bundler's default gemspec file where the executable folder of the bundler gem is `libexec` instead of `exe`. I made that change in https://github.com/ruby/ruby/pull/2380 to try to simplify the integration of the `bundler` gem with upstream, minimizing the number of changes that need to be made to the gemspec to adapt to the structure of ruby-core. That worked ok, expected for this issue. The new name of the folder including the executable files uncovered a bug in rubygems, which is the following: * In order to be able to use newer versions of default gems, `rubygems` ships with a customized `require` that has knowledge about which files belong to which default gem. If one of these files is required, `rubygems` will detect that and activate its gem mechanism to choose the newest version of the corresponding default gem present in the system (unless a different version has already been activated). It's this part of the custom require: https://github.com/rubygems/rubygems/blob/ea3e6f194df500b028b52b3b64decbd3df1d5ab0/lib/rubygems/core_ext/kernel_require.rb#L77-L85 * In order to do that, `rubygems` registers a map of default gems and their files when it is first required: https://github.com/rubygems/rubygems/blob/ea3e6f194df500b028b52b3b64decbd3df1d5ab0/lib/rubygems.rb#L1247-L1276 As explained in the method's header, two types of default gem specifications are supported. One of the formats is the style used by some ruby-core gemspec files, where paths inside the `spec.files` array don't include the `spec.require_paths` part. So in this "old style", if a gem ships with a `lib/bundler.rb` file, it will be registered in this array as `spec.files = ["bundler.rb"]`, not as `spec.files = ["lib/bundler.rb"]`. The `Gem.register_default_spec` method "detects" this style by making sure that none of the files in the `spec.files` array start with any of the `spec.require_paths`. * Since in ruby 2.7 the default specification file of the `bundler` gem includes a `libexec/bundle` file, this check would no longer work correctly, because even though the specification file is still "old style", it has one registered file which starts with "lib", one of the "require paths" of the gem. * This means that the gem is incorrectly detected as "new style", but since none of the paths start with "lib/", no files are actually registered, so the gem is not being considered a default gem, and thus the default version is always used with no possibility of being "upgraded". The fix of the problem is simple: check that no files start with `lib/` (or any other require paths), instead of with "lib" which doesn't exclude other potential "non requirable folder" starting with lib, like in the `bundler` case. https://github.com/rubygems/rubygems/commit/94df740c2b
* [rubygems/rubygems] Refactor ruby command line building for testsDavid Rodríguez2020-05-081-4/+3
| | | | https://github.com/rubygems/rubygems/commit/43819b6973
* [rubygems/rubygems] Remove unneeded explicit requiresDavid Rodríguez2020-05-081-2/+2
| | | | https://github.com/rubygems/rubygems/commit/583316bf49
* [rubygems/rubygems] Remove unneeded dupsDavid Rodríguez2020-05-081-4/+4
| | | | https://github.com/rubygems/rubygems/commit/2f072e3dc7
* [rubygems/rubygems] Remove unneeded untaintingDavid Rodríguez2020-05-081-6/+6
| | | | https://github.com/rubygems/rubygems/commit/ff223d8489
* [rubygems/rubygems] Autoload name_tuple.rb before useOlle Jonsson2020-05-081-0/+15
| | | | | | | | - Resolver asked Molinillo to resolve-then-activate, which led to using Gem::NameTuple before any require had been passed Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net> https://github.com/rubygems/rubygems/commit/e11782b0c8
* Support XDG_* (#2174)Hiroshi SHIBATA2020-04-231-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Support XDG_CONFIG_HOME for gemrc. * Support XDG_DATA_HOME for .gem * Added test for XDG_DATA_HOME * Do not reuse environmental variable. * Unify .rdoc path to RDoc.home. * Support XDG_DATA_HOME for .rdoc * Ignore exists? * Extracted config_home path * Use XDG_CONFIG_HOME for default credential path * Fixed inconsistency location. * Fixed the broken tests. * Support XDG_CONFIG_HOME for irbrc * Introduce Gem.cache_home as XDG_CACHE_HOME * Use Gem.cache_home instead of Gem.config_home for the credential file of RubyGems. * Initialized the old configurations * Fixed test failure related the configuration initialization * restore XDG_DATA_HOME * Fixed the broken examples of bundler with XDG_* * Do not modify environmental variable on test file * Use XDG_DATA_HOME insted of XDG_CACHE_HOME for credential file * stub out Gem.data_home * Move dir accessor to defaults.rb file * Use XDG_DATA_HOME for signed gem features * Use XDG_DATA_HOME for spec cache * Do not rely on Gem.user_home * Gem.user_home is always exists. Don't need to use FileUitls.mkdir_p * Bump support version to RubyGems 3.2.0+ * Removed the needless fallback configuration * Fixed the inconsistency methods that are find_config_file and config_file * Use Gem.configuration.credentials_path instead of hard-coded path * gem_path is always provided * Removed the duplicated code of find_home * Also removed the duplicated code of user_home * use Gem::UNTAINT instead of untaint for surpressing the warnings * Use File.directory * Restore XDG_DATA_HOME * Use File.write
* [rubygems/rubygems] Enable `Style/ExtraSpacing` and auto-correctDavid Rodríguez2020-03-301-1/+1
| | | | https://github.com/rubygems/rubygems/commit/6fa0b1b679
* [rubygems/rubygems] Enable Style/PercentLiteralDelimiters cop in rubygemsDavid Rodríguez2020-03-301-20/+20
| | | | | | So it matches the style used by bundler. https://github.com/rubygems/rubygems/commit/ab0580fd65
* Sync rubygems with current master (#2889)David Rodríguez2020-03-241-9/+40
|
* Merge the current master branch of rubygems/rubygems.Hiroshi SHIBATA2020-02-011-41/+38
| | | | Just started to develop RubyGems 3.2.0.
* Merge RubyGems 3.1.2Hiroshi SHIBATA2019-12-201-10/+5
|
* Do not load q.rb in build directoryKazuhiro NISHIYAMA2019-12-111-1/+1
|
* Do not load files in build directoryKazuhiro NISHIYAMA2019-12-111-2/+2
| | | | related https://bugs.ruby-lang.org/issues/16177
* Merge RubyGems 3.1.0.pre3Hiroshi SHIBATA2019-11-111-10/+10
| | | | | | | | | | | | | | | | | | | * Fix gem pristine not accounting for user installed gems. Pull request #2914 by Luis Sagastume. * Refactor keyword argument test for Ruby 2.7. Pull request #2947 by SHIBATA Hiroshi. * Fix errors at frozen Gem::Version. Pull request #2949 by Nobuyoshi Nakada. * Remove taint usage on Ruby 2.7+. Pull request #2951 by Jeremy Evans. * Check Manifest.txt is up to date. Pull request #2953 by David Rodríguez. * Clarify symlink conditionals in tests. Pull request #2962 by David Rodríguez. * Update command line parsing to work under ps. Pull request #2966 by David Rodríguez. * Properly test `Gem::Specifications.stub_for`. Pull request #2970 by David Rodríguez. * Fix Gem::LOADED_SPECS_MUTEX handling for recursive locking. Pull request #2985 by MSP-Greg.
* test/rubygems/test_gem.rb: early failure when there is /tmp/GemfileYusuke Endoh2019-10-291-0/+4
| | | | | | | | | | | | | | | Some test cases in rubygems assume that /tmp/Gemfile does not exist. If it does, they fail with very difficult-to-understand message: ``` [ 149/2108] TestGemBundlerVersionFinder#test_bundler_version_with_bundle_update_bundler = 0.00 1) Failure: TestGemBundlerVersionFinder#test_bundler_version_with_bundle_update_bundler [/home/mame/work/ruby/test/rubygems/test_gem_bundler_version_finder.rb:38]: Expected Gem::Version.new("2.0.2") to be nil. ``` I spent one hour to debug this issue. To prevent the same accident, this change makes the test suite stop when /tmp/Gemfile explicitly.
* [rubygems/rubygems] Fix underscore version for bundler itselfDavid Rodríguez2019-09-261-0/+34
| | | | | | Previously it wouldn't play nice with the bundler version finder. https://github.com/rubygems/rubygems/commit/d8bb81556d
* [rubygems/rubygems] Autoswitch to exact bundler version if presentDavid Rodríguez2019-08-171-0/+34
| | | | https://github.com/rubygems/rubygems/commit/bb02953a97
* [rubygems/rubygems] Silence deprecations when gemdeps is used in testsDavid Rodríguez2019-07-311-2/+4
| | | | | | | Because we can't control 3rd party gems using deprecated rubygems behavior, and thus outputting warnings to the screen. https://github.com/rubygems/rubygems/commit/6912ebf20a
* [rubygems/rubygems] Make `@@project_dir` constants per filesNobuyoshi Nakada2019-07-241-11/+11
| | | | https://github.com/rubygems/rubygems/commit/955174658f
* [rubygems/rubygems] Resolve `@@project_dir` from test file pathsNobuyoshi Nakada2019-07-241-0/+2
| | | | | | | `Dir.pwd` may differ from the source path. Test directories and files should be resolved from test file paths. https://github.com/rubygems/rubygems/commit/e18e7c81b4
* Merge rubygems master from upstream.Hiroshi SHIBATA2019-06-011-81/+37
| | | | I picked the commit from 3c469e0da538428a0ddd94f99aa73c32da22e8ba
* Update rubygems with latest upstream changesDavid Rodríguez2019-04-281-21/+17
| | | | Closes: https://github.com/ruby/ruby/pull/2154
* Merge rubygems/rubygems from upstream.hsbt2019-04-021-25/+24
| | | | | | | The current master branch is https://github.com/rubygems/rubygems/commit/97b264f0fa248c864b6ee9a23d3ff1cdd217dddb git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Merge RubyGems upstream: 56c0bbb69e4506bda7ef7f447dfec5db820df20bhsbt2019-03-051-18/+26
| | | | | | | It fixed the multiple vulnerabilities. https://blog.rubygems.org/2019/03/05/security-advisories-2019-03.html git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67168 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Merge RubyGems master@9be7858f7f17eae3058204f3c03e4b798ba18b9chsbt2019-02-141-37/+44
| | | | | | | | | | | This version contains the some style changes by RuboCop. * https://github.com/rubygems/rubygems/commit/9d810be0ede925fb2e3af535848582c3f8e0e72f * https://github.com/rubygems/rubygems/commit/61ea98a727fb1b76b6fac52d74107ee4b02aaef2 * https://github.com/rubygems/rubygems/commit/795893dce3c5f8540804fc08144cc6a90f086b13 * https://github.com/rubygems/rubygems/commit/9be7858f7f17eae3058204f3c03e4b798ba18b9c git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Merge rubygems master targeted RubyGems 3.1.0.hsbt2019-01-221-1/+4
| | | | | | https://github.com/rubygems/rubygems/commit/1172320540c8c33c59fc1db5191b021c3b2db487 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Merge rubygems-3.0.2.hsbt2019-01-011-1/+9
| | | | | | https://blog.rubygems.org/2019/01/01/3.0.2-released.html git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66678 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Merge RubyGems 3.0.1 from rubygems/rubygems.hsbt2018-12-231-1/+1
| | | | | | | It fixed the issues of RubyGems 3.0.0. https://blog.rubygems.org/2018/12/23/3.0.1-released.html git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Merge RubyGems 3.0.0 from upstream.hsbt2018-12-191-1/+3
| | | | | | https://blog.rubygems.org/2018/12/19/3.0.0-released.html git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Merge master branch from rubygems/rubygems upstream.hsbt2018-11-211-11/+70
| | | | | | | | | | | | | * Enable Style/MethodDefParentheses in Rubocop https://github.com/rubygems/rubygems/pull/2478 * Enable Style/MultilineIfThen in Rubocop https://github.com/rubygems/rubygems/pull/2479 * Fix required_ruby_version with prereleases and improve error message https://github.com/rubygems/rubygems/pull/2344 * Fix bundler rubygems binstub not properly looking for bundler https://github.com/rubygems/rubygems/pull/2426 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Merge rubygems master branch from github.com/rubygems/rubygems.hsbt2018-10-221-9/+10
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Merge master branch from rubygems upstream.hsbt2018-08-271-1/+1
| | | | | | | | * It's preparation to release RubyGems 3.0.0.beta2 and Ruby 2.6.0 preview 3. * https://github.com/rubygems/rubygems/compare/v3.0.0.beta1...fad2eb15a282b19dfcb4b48bc95b8b39ebb4511f git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Merge RubyGems 3.0.0.beta1.hsbt2018-05-301-113/+117
| | | | | | | | | * It drop to support < Ruby 2.2 * Cleanup deprecated methods and classes. * Mark obsoleted methods to deprecate. * and other enhancements. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Merge RubyGems 2.7.7hsbt2018-05-181-7/+7
| | | | | | see release details here: https://blog.rubygems.org/2018/05/18/2.7.7-released.html git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Merge RubyGems-2.7.5 from upstream.hsbt2018-02-061-8/+8
| | | | | | Please see its details: http://blog.rubygems.org/2018/02/06/2.7.5-released.html git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* skip some tests so that no failure occurs in root privilegemame2018-01-101-1/+1
| | | | | | | | | | | | Some tests had failed on `sudo make test-all`, mainly because root can access any files regardless of permission. This change adds `skip` guards into such tests. Note that almost all tests in which `skip` guards is added, already have "windows" guard. This is because there is no support to avoid read access by owner on Windows. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* `$SAFE` as a process global state. [Feature #14250]ko12017-12-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * vm_core.h (rb_vm_t): move `rb_execution_context_t::safe_level` to `rb_vm_t::safe_level_` because `$SAFE` is a process (VM) global state. * vm_core.h (rb_proc_t): remove `rb_proc_t::safe_level` because `Proc` objects don't need to keep `$SAFE` at the creation. Also make `is_from_method` and `is_lambda` as 1 bit fields. * cont.c (cont_restore_thread): no need to keep `$SAFE` for Continuation. * eval.c (ruby_cleanup): use `rb_set_safe_level_force()` instead of access `vm->safe_level_` directly. * eval_jump.c: End procs `END{}` doesn't keep `$SAFE`. * proc.c (proc_dup): removed and introduce `rb_proc_dup` in vm.c. * safe.c (rb_set_safe_level): don't check `$SAFE` 1 -> 0 changes. * safe.c (safe_setter): use `rb_set_safe_level()`. * thread.c (rb_thread_safe_level): `Thread#safe_level` returns `$SAFE`. It should be obsolete. * transcode.c (load_transcoder_entry): `rb_safe_level()` only returns 0 or 1 so that this check is not needed. * vm.c (vm_proc_create_from_captured): don't need to keep `$SAFE` for Proc. * vm.c (rb_proc_create): renamed to `proc_create`. * vm.c (rb_proc_dup): moved from proc.c. * vm.c (vm_invoke_proc): do not need to set and restore `$SAFE` for `Proc#call`. * vm_eval.c (rb_eval_cmd): rename a local variable to represent clearer meaning. * lib/drb/drb.rb: restore `$SAFE`. * lib/erb.rb: restore `$SAFE`, too. * test/lib/leakchecker.rb: check `$SAFE == 0` at the end of tests. * test/rubygems/test_gem.rb: do not set `$SAFE = 1`. * bootstraptest/test_proc.rb: catch up this change. * spec/ruby/optional/capi/string_spec.rb: ditto. * test/bigdecimal/test_bigdecimal.rb: ditto. * test/fiddle/test_func.rb: ditto. * test/fiddle/test_handle.rb: ditto. * test/net/imap/test_imap_response_parser.rb: ditto. * test/pathname/test_pathname.rb: ditto. * test/readline/test_readline.rb: ditto. * test/ruby/test_file.rb: ditto. * test/ruby/test_optimization.rb: ditto. * test/ruby/test_proc.rb: ditto. * test/ruby/test_require.rb: ditto. * test/ruby/test_thread.rb: ditto. * test/rubygems/test_gem_specification.rb: ditto. * test/test_tempfile.rb: ditto. * test/test_tmpdir.rb: ditto. * test/win32ole/test_win32ole.rb: ditto. * test/win32ole/test_win32ole_event.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61510 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Postponing the Bundler merge.hsbt2017-12-221-5/+8
| | | | | | | I faced a big issue about Bundler with ruby core. I have no time to resolve it issue before 2.5 final release. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * remove trailing spaces, append newline at EOF.svn2017-10-081-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Merge rubygems master.hsbt2017-10-081-14/+72
| | | | | | | This is RC version of Rubygems 2.7.0. https://github.com/rubygems/rubygems/commit/688fb7e83c13c3fe7c2bb03c49a2db4c82852aee git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60133 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gem.rb: load rubygems.rbnobu2017-09-241-4/+2
| | | | | | | * test/rubygems/test_gem.rb: load rubygems.rb explicitly, for the case configured as --disable-rubygems. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60010 b2dd03c8-39d4-4d8f-98ff-823fe69b080e