summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2020-05-08[rubygems/rubygems] Show gemspec location when a Gem::MissingSpecError is ↵bronzdoc
raised while trying to activate a gem https://github.com/rubygems/rubygems/commit/4da54a8e8b Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Fix incorrect bundler version being requiredDavid Rodríguez
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 Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Specify explicit separator not to be affected by $;Nobuyoshi Nakada
https://github.com/rubygems/rubygems/commit/1cea3d4dce Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Install man files when bundler installed as a default gemDavid Rodríguez
https://github.com/rubygems/rubygems/commit/28d6d77d81 Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Refactor dummy file creationDavid Rodríguez
https://github.com/rubygems/rubygems/commit/665099fe53 Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Fix super weird code styleDavid Rodríguez
https://github.com/rubygems/rubygems/commit/f1a5815896 Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Follow the pattern of other test files for foo.pemDavid Rodríguez
https://github.com/rubygems/rubygems/commit/a43cffddad Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Move helper methods to private section of the test fileDavid Rodríguez
https://github.com/rubygems/rubygems/commit/b85db66e2d Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Install existing gems as regular gemsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/a0880d78a8 Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Remove misleading commentsDavid Rodríguez
`site_dir`, or `vendor_dir`, is the location where the default version of bundler & rubygems gets installed. These folders are placed directly in the LOAD_PATH, so they cannot hold any nested gem directory structure. So a single copy of either rubygems or bundler can be placed in these folders. What the tests are actually testing is the TODO comment that I'm removing: that installing the default copy of bundler doesn't affect any already installed copies of bundler as regular gems. https://github.com/rubygems/rubygems/commit/7ca8831d72 Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Remove unnecessary lineDavid Rodríguez
https://github.com/rubygems/rubygems/commit/1d0981809a Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Condense some artificially broken linesDavid Rodríguez
Co-authored-by: MSP-Greg <MSP-Greg@users.noreply.github.com> https://github.com/rubygems/rubygems/commit/5f390478c7 Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Extract `gem_make_out` contents to a variableDavid Rodríguez
Co-authored-by: MSP-Greg <MSP-Greg@users.noreply.github.com> https://github.com/rubygems/rubygems/commit/5f2b7474eb Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Fix incorrect `gem uninstall --all` messageDavid Rodríguez
Currently `gem uninstall --all` shows the following incorrect message after completion: ``` INFO: Uninstalled all gems in ``` Now it shows something that actually makes sense like: ``` INFO: Uninstalled all gems in /home/deivid/Code/rubygems/tmp/test_rubygems_6986/gemhome ``` https://github.com/rubygems/rubygems/commit/8fa05e8f8c Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Make cmake tests less verbose on jrubyDavid Rodríguez
These tests work on jruby, but the flags to the system command used to detect whether `cmake` is present seem to be ignored on jruby and the output is printed to screen instead of being sent to /dev/null. This results in very verbose tests, like this: ``` $ rake TESTOPTS=--name=TestGemExtCmakeBuilder#test_self_build (... warnings skipped ...) Skipping `gem cert` tests on jruby. Skipping Gem::Security tests on jruby. Run options: --name=TestGemExtCmakeBuilder#test_self_build --seed 16839 # Running: /home/deivid/Code/rubygems/test/rubygems/test_gem_ext_cmake_builder.rb:13: warning: system does not support options in JRuby yet: {:out=>"/dev/null", :err=>[:child, :out]} Usage cmake [options] <path-to-source> cmake [options] <path-to-existing-build> Specify a source directory to (re-)generate a build system for it in the current working directory. Specify an existing build directory to re-generate its build system. Run 'cmake --help' for more information. . Finished in 0.387301s, 2.5820 runs/s, 20.6558 assertions/s. 1 runs, 8 assertions, 0 failures, 0 errors, 0 skips Coverage report generated for Unit Tests to /home/deivid/Code/rubygems/coverage. 2258 / 8832 LOC (25.57%) covered. ``` By using `Open3`, we get the test output clean: ``` $ rake TESTOPTS=--name=TestGemExtCmakeBuilder#test_self_build (... warnings skipped ...) Skipping `gem cert` tests on jruby. Skipping Gem::Security tests on jruby. Run options: --name=TestGemExtCmakeBuilder#test_self_build --seed 22605 # Running: . Finished in 0.381959s, 2.6181 runs/s, 20.9446 assertions/s. 1 runs, 8 assertions, 0 failures, 0 errors, 0 skips Coverage report generated for Unit Tests to /home/deivid/Code/rubygems/coverage. 2258 / 8832 LOC (25.57%) covered. ``` https://github.com/rubygems/rubygems/commit/531ce37ea3 Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Refactor ruby command line building for testsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/43819b6973 Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Update test_realworld_default_gem to use rubygems ↵Brandon Fish
project sources https://github.com/rubygems/rubygems/commit/7506f7eb07 Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Remove unnecessary `@@ruby` variableDavid Rodríguez
https://github.com/rubygems/rubygems/commit/5f20647ec1 Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Remove unneeded explicit requiresDavid Rodríguez
https://github.com/rubygems/rubygems/commit/583316bf49 Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Remove unneeded dupsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/2f072e3dc7 Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Remove unneeded untaintingDavid Rodríguez
https://github.com/rubygems/rubygems/commit/ff223d8489 Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Simplify nested require exceptionsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/7fbef2f0e3 Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Fix ruby warning about unused local variablesDavid Rodríguez
https://github.com/rubygems/rubygems/commit/cca2fccd95 Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Fix ruby warnings about a shadowed variableDavid Rodríguez
https://github.com/rubygems/rubygems/commit/5cfb3252d9 Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Fix symlink RubyGems test problems for non-admin user.Josef Šimánek
https://github.com/rubygems/rubygems/commit/75f672ff0e Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08[rubygems/rubygems] Allow spaces in file headers during octal checkDmytro Shyrshov
https://github.com/rubygems/rubygems/commit/e9e25731d8 Notes: Merged: https://github.com/ruby/ruby/pull/3092
2020-05-08Fix typo in test namePeter Zhu
Notes: Merged: https://github.com/ruby/ruby/pull/3091
2020-05-08[rubygems/rubygems] Remove unnecessary DIR constantDavid Rodríguez
We have `__dir__` which is the same thing. https://github.com/rubygems/rubygems/commit/f89776427f Notes: Merged: https://github.com/ruby/ruby/pull/3087
2020-05-08[rubygems/rubygems] Move stuff to the instance levelDavid Rodríguez
I don't know why it was living at the class level. At first I thought it would be to reuse some server instances between tests, but they seem to be cleaned up after every test anyways, so I don't think any of it is needed. https://github.com/rubygems/rubygems/commit/04bee71216 Notes: Merged: https://github.com/ruby/ruby/pull/3087
2020-05-08Normalize heredoc case in rubygems code baseDavid Rodríguez
Notes: Merged: https://github.com/ruby/ruby/pull/3087
2020-05-08[rubygems/rubygems] These specs seem to work just fine on jrubyBenoit Daloze
https://github.com/rubygems/rubygems/commit/a0219b9f27 Notes: Merged: https://github.com/ruby/ruby/pull/3087
2020-05-08[rubygems/rubygems] Only run the $SAFE test on MRI < 2.7Benoit Daloze
* Other Ruby implementations don't support $SAFE. https://github.com/rubygems/rubygems/commit/9a4ba16efa Notes: Merged: https://github.com/ruby/ruby/pull/3087
2020-05-08[rubygems/rubygems] Autoload name_tuple.rb before useOlle Jonsson
- 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 Notes: Merged: https://github.com/ruby/ruby/pull/3087
2020-05-08[rubygems/rubygems] Add gem build test to check for removed methods.Josef Šimánek
https://github.com/rubygems/rubygems/commit/c07b9cf4f1 Notes: Merged: https://github.com/ruby/ruby/pull/3087
2020-05-08[rubygems/rubygems] Track removed methods calls and warn during build time.Josef Šimánek
move rubyforge_project= to removed methods https://github.com/rubygems/rubygems/commit/223f7fd470 Notes: Merged: https://github.com/ruby/ruby/pull/3087
2020-05-08[rubygems/rubygems] Deprecate rubyforge_project attribute only during build ↵Josef Šimánek
time. https://github.com/rubygems/rubygems/commit/c44eb21648 Notes: Merged: https://github.com/ruby/ruby/pull/3087
2020-05-08[rubygems/rubygems] Revert deprecation of deprecate method for now.Josef Šimánek
https://github.com/rubygems/rubygems/commit/965eee1741 Notes: Merged: https://github.com/ruby/ruby/pull/3087
2020-05-08[rubygems/rubygems] Restore and deprecate old deprecate methodbronzdoc
https://github.com/rubygems/rubygems/commit/024267fa60 Notes: Merged: https://github.com/ruby/ruby/pull/3087
2020-05-08[rubygems/rubygems] Rename version horizon deprecation methodsbronzdoc
https://github.com/rubygems/rubygems/commit/6afd914fda Notes: Merged: https://github.com/ruby/ruby/pull/3087
2020-05-08[rubygems/rubygems] Avoid "ambiguous first argument" warningbronzdoc
https://github.com/rubygems/rubygems/commit/984bb9b815 Notes: Merged: https://github.com/ruby/ruby/pull/3087
2020-05-08[rubygems/rubygems] Modify files to use new version horizon deprecationsbronzdoc
https://github.com/rubygems/rubygems/commit/4fe5bb5bf3 Notes: Merged: https://github.com/ruby/ruby/pull/3087
2020-05-08[rubygems/rubygems] Remove minitest compatibility codeDavid Rodríguez
https://github.com/rubygems/rubygems/commit/24213b97d8 Notes: Merged: https://github.com/ruby/ruby/pull/3087
2020-05-08[rubygems/rubygems] Use newer module Minitest nameDavid Rodríguez
https://github.com/rubygems/rubygems/commit/2890622479 Notes: Merged: https://github.com/ruby/ruby/pull/3087
2020-05-08Fix a typo [ci skip]Kazuhiro NISHIYAMA
2020-05-07Fix rb_profile_frame_classpath to handle module singletonsJean Boussier
Right now `SomeClass.method` is properly named, but `SomeModule.method` is displayed as `#<Module:0x000055eb5d95adc8>.method` which makes profiling annoying. Notes: Merged: https://github.com/ruby/ruby/pull/3084
2020-05-08Restore the external and internal encodings of STDIN, STDOUT, and STDERRYusuke Endoh
IRB::ReadlineInputMethod#initialize changes them via IRB.set_encoding.
2020-05-08test/irb/test_cmd.rb: clear IRB.@CONF on setupYusuke Endoh
It caches a path to .irbrc file, which has caused random failure: ``` 1) Failure: TestIRB::ExtendCommand#test_irb_info_multiline [/home/mame/work/ruby/test/irb/test_cmd.rb:49]: Expected / Ruby\sversion: .+\n IRB\sversion:\sirb .+\n InputMethod:\sReidlineInputMethod\swith\sReline .+ and .+\n \.irbrc\spath: .+ /x to match "Ruby version: 2.8.0\n" + "IRB version: irb 1.2.3 (2020-02-15)\n" + "InputMethod: ReidlineInputMethod with Reline 0.1.4 and /tmp/test_reline_config_155659/.inputrc\n". ```
2020-05-07Remove test of ruby-mode.elKazuhiro NISHIYAMA
Because ruby-mode.el already removed at f03e68edb80dca962290d1fb3a6d49dabdbb911e
2020-05-07Suffixed memory leak tests as "memory_leak"Nobuyoshi Nakada
So that `TEST_EXCLUDES` option in common.mk works.
2020-05-07Cut down warm-up loops and gain main/warm-up ratioNobuyoshi Nakada