aboutsummaryrefslogtreecommitdiffstats
path: root/spec
Commit message (Collapse)AuthorAgeFilesLines
* Marshal.load: also freeze extended objectsJean Boussier2023-02-131-0/+20
| | | | | | [Bug #19427] The `proc` wouldn't be called either, that fixes both.
* [DOC] Move old ChangeLog files to doc/ChangeLog (#7293)Takashi Kokubun2023-02-102-2/+2
|
* [rubygems/rubygems] Avoid crashing with a corrupted lockfileDaniel Colson2023-02-092-2/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I did a bad thing (script that edits the Gemfile.lock directly) and ended up with a Gemfile.lock that was completely missing some indirect dependencies. While this is my fault and an error is reasonable, I noticed that the error got progressively less friendly in recent versions of bundler. Something similar came up in https://github.com/rubygems/rubygems/issues/6210, and this commit would have helped with that case as well (although we've already handled this a different way with #6219). Details: --- Back on Bundler 2.2.23, a corrupt lockfile like this would cause a helpful error: ``` Unable to find a spec satisfying minitest (>= 5.1) in the set. Perhaps the lockfile is corrupted? ``` Bundler 2.3.26 gave a helpful warning: ``` Warning: Your lockfile was created by an old Bundler that left some things out. Because of the missing DEPENDENCIES, we can only install gems one at a time, instead of installing 16 at a time. You can fix this by adding the missing gems to your Gemfile, running bundle install, and then removing the gems from your Gemfile. The missing gems are: * minitest depended upon by activesupport ``` But then continued on and crashed while trying to report the unmet dependency: ``` --- ERROR REPORT TEMPLATE ------------------------------------------------------- NoMethodError: undefined method `full_name' for nil:NilClass lib/bundler/installer/parallel_installer.rb:127:in `block (2 levels) in check_for_unmet_dependencies' ... ``` Bundler 2.4.0 and up crash as above when jobs=1, but crash even harder when run in parallel: ``` --- ERROR REPORT TEMPLATE ------------------------------------------------------- fatal: No live threads left. Deadlock? 3 threads, 3 sleeps current:0x00007fa6b6704660 main thread:0x00007fa6b6704660 * #<Thread:0x000000010833b130 sleep_forever> rb_thread_t:0x00007fa6b6704660 native:0x0000000108985600 int:0 * #<Thread:0x0000000108dea630@Parallel Installer Worker #0 tmp/1/gems/system/gems/bundler-2.5.0.dev/lib/bundler/worker.rb:90 sleep_forever> rb_thread_t:0x00007fa6b67f67c0 native:0x0000700009a62000 int:0 * #<Thread:0x0000000108dea4a0@Parallel Installer Worker #1 tmp/1/gems/system/gems/bundler-2.5.0.dev/lib/bundler/worker.rb:90 sleep_forever> rb_thread_t:0x00007fa6b67f63c0 native:0x0000700009c65000 int:0 <internal:thread_sync>:18:in `pop' tmp/1/gems/system/gems/bundler-2.5.0.dev/lib/bundler/worker.rb:42:in `deq' ... ``` Changes --- This commit fixes the confusing thread deadlock crash by detecting if dependencies are missing such that we'll never be able to enqueue. When that happens we treat it as a failure so the install can finish. That gets us back to the `NoMethodError`, which this commit fixes by using a different warning in the case where no spec is found. https://github.com/rubygems/rubygems/commit/d73001a21d
* [rubygems/rubygems] Improve wording of unmet dependencies warningDaniel Colson2023-02-081-2/+2
| | | | | | | | | | | | | | | `trying to manually editing` doesn't seem quite grammatically correct. We could change it to `trying to manually edit` (is that a split infinitive?), but I don't think `trying to` adds much here so I've removed it instead so `editing` is the verb. For the list of dependencies, the wording before this commit seemed to reverse the dependency. "B, depended on A" sounds like B depends on A (or did in the past but doesn't anymore?), but that's not correct. I think there's a missing word: "B, depended on by A", but I find "B, dependency of A" a bit nicer. https://github.com/rubygems/rubygems/commit/49a31257e3
* Use Thread.pass until thread.stop? to wait for thread to blockJean Boussier2023-02-081-1/+1
| | | | | | [Bug #19415] It should be more reliable
* Only emit circular dependency warning for owned thread shieldsJean byroot Boussier2023-02-082-0/+15
| | | | | | | | | | [Bug #19415] If multiple threads attemps to load the same file concurrently it's not a circular dependency issue. So we check that the existing ThreadShield is owner by the current fiber before warning about circular dependencies.
* [rubygems/rubygems] Add Ruby 3.2 and 3.3 platforms to Gemfile DSLDaniel Colson2023-02-072-3/+22
| | | | | | | | | | | | Along the same lines as https://github.com/rubygems/rubygems/pull/5469, this adds support for Ruby 3.2 and 3.3 platforms: `:ruby_32`, `mri_32`, etc. It also includes a spec that should help catch this earlier in the future, failing if we don't support platforms for the version of Ruby that is running the tests. https://github.com/rubygems/rubygems/commit/7cd19d824d
* Revert "Only emit circular dependency warning for owned thread shields"Jean byroot Boussier2023-02-062-11/+0
| | | | This reverts commit fa49651e05a06512e18ccb2f54a7198c9ff579de.
* Only emit circular dependency warning for owned thread shieldsJean Boussier2023-02-062-0/+11
| | | | | | | | | | [Bug #19415] If multiple threads attemps to load the same file concurrently it's not a circular dependency issue. So we check that the existing ThreadShield is owner by the current fiber before warning about circular dependencies.
* [rubygems/rubygems] Properly load the generated gemspecAkira Matsuda2023-02-061-1/+1
| | | | | | | | The previous code loads bundler's gemspec which does not include the generated gemspec file, and thus the test was passing where it should indeed fail. With this change, the test properly fails now. https://github.com/rubygems/rubygems/commit/2098ea0d75
* Merge RubyGems/Bundler master.Hiroshi SHIBATA2023-01-318-178/+359
| | | | Pick from https://github.com/rubygems/rubygems/commit/5ace20dbecfeaf09fba5f616193f3cfcff70ba00
* [rubygems/rubygems] Add test for old lockfile with new ruby versionMike Dalessio2023-01-311-0/+58
| | | | | | | | | | | Given an existing application using native gems (e.g., nokogiri) And a lockfile generated with a stable ruby version When we test the application against ruby-head and `bundle install` Then bundler should fall back to the generic ruby platform gem Note that this test has been passing since 45931ac9 https://github.com/rubygems/rubygems/commit/0ecc6de378
* [rubygems/rubygems] Fix issue with extensions not compiling properly using ↵Tim Bates2023-01-311-0/+110
| | | | | | inline gemfile https://github.com/rubygems/rubygems/commit/fa6e6ea95c
* [rubygems/rubygems] Don't warn on bundler binstubs --standalone --allDaniel Colson2023-01-271-0/+21
| | | | | | | | | | | | | | | | | | | Prior to this commit `bundle binstubs --standalone --all` would output a warning about not being able to generate a standalone binstub for bundler. This warning predates the `--all` option, and I don't think it makes sense in this context. The warning makes good sense when explicitly trying to generate a bundler standalone binstub with `bundle binstubs bundler --standalone`, since that command won't do what the user might have expected. But `--all` is not specifically asking for bundler, and having it report each time that the bundler binstubs could not be generated does not seem particularly helpful. The only way to make that warning go away would be to stop using `--standalone --all`. This commit skips the warning when running with the `--all` option. https://github.com/rubygems/rubygems/commit/e6a72e19eb
* Enable code-coverage result for test-specHiroshi SHIBATA2023-01-261-0/+5
|
* Enable code-coverage result for test-syntax-suggestHiroshi SHIBATA2023-01-261-0/+1
|
* Add tests for variables in `END` block shared with the toplevelNobuyoshi Nakada2023-01-241-0/+4
|
* blade is hosted under ruby-lang.org nowHiroshi SHIBATA2023-01-235-5/+5
|
* More coverage tests & specs. (#7171)Samuel Williams2023-01-221-1/+7
| | | | | * Add spec for eval and line coverage. * Add test for main file coverage.
* Define RUBY_VERSION_IS_3_3 macro in rubyspec.hNobuyoshi Nakada2023-01-181-3/+8
|
* [Bug #19335] `Integer#remainder` should respect `#coerce` (#7120)Nobuyoshi Nakada2023-01-151-0/+3
| | | Also `Numeric#remainder` should.
* Move classpath to rb_classext_tPeter Zhu2023-01-111-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit moves the classpath (and tmp_classpath) from instance variables to the rb_classext_t. This improves performance as we no longer need to set an instance variable when assigning a classpath to a class. I benchmarked with the following script: ```ruby name = :MyClass puts(Benchmark.measure do 10_000_000.times do |i| Object.const_set(name, Class.new) Object.send(:remove_const, name) end end) ``` Before this patch: ``` 5.440119 0.025264 5.465383 ( 5.467105) ``` After this patch: ``` 4.889646 0.028325 4.917971 ( 4.942678) ```
* Remove Encoding#replicateBenoit Daloze2023-01-111-1/+1
|
* Suppressing pending messages with RSpecHiroshi SHIBATA2023-01-111-0/+6
|
* Merge RubyGems and Bundler masterHiroshi SHIBATA2023-01-1025-249/+407
| | | | from https://github.com/rubygems/rubygems/commit/0635c1423db5d7c461d53bf0c3329bca75de7609
* [rubygems/rubygems] Fix resolver edge caseDavid Rodríguez2023-01-101-0/+27
| | | | | | | Let it deal with legacy gems with equivalent version and different dependencies. https://github.com/rubygems/rubygems/commit/b430babe97
* Only RangeError on CRuby for shift width >= 2**67Benoit Daloze2023-01-072-28/+14
| | | | * It seems a better exception class too than NoMemoryError.
* Fix Integer#{<<,>>} specs with large shift widthBenoit Daloze2023-01-072-28/+46
| | | | | * The limit depends on the implementation and platform, it seems unavoidable. * See https://bugs.ruby-lang.org/issues/18518#note-9
* [ruby/syntax_suggest] Run with the given ruby commandNobuyoshi Nakada2023-01-071-1/+2
| | | | | | | | | | | | Running the file with shebang has a few issues. * shebang is an OS dependent feature. Many modern UNIX-like OSes support it, but not all, e.g., Windows. * `env` command may not be in `/usr/bin`. * "ruby" command may not be "ruby", when `--program-suffix` or other configuration option is used. https://github.com/ruby/syntax_suggest/commit/2edf241055
* Add bug numberBenoit Daloze2023-01-061-1/+1
|
* Update to ruby/spec@5e48206Benoit Daloze2023-01-053-6/+2
|
* Update to ruby/spec@7e680faBenoit Daloze2023-01-052-3/+4
|
* * remove trailing spaces, append newline at EOF. [ci skip]git2023-01-054-4/+4
|
* Update to ruby/spec@9d69b95Benoit Daloze2023-01-05113-236/+1954
|
* Update to ruby/mspec@fef9b81Benoit Daloze2023-01-051-1/+1
|
* [rubygems/rubygems] Raise invalid option when bundle open --path is called ↵yoka2023-01-041-0/+5
| | | | | | without a value https://github.com/rubygems/rubygems/commit/c242311158
* [rubygems/rubygems] Enhance bundle open with --path optionyoka2023-01-041-0/+53
| | | | https://github.com/rubygems/rubygems/commit/3bf8e59304
* Make IO#set_encoding with binary external encoding use nil internal encodingJeremy Evans2023-01-011-6/+18
| | | | | | | | | | | | | | This was already the behavior when a single `'external:internal'` encoding specifier string was passed. This makes the behavior consistent for the case where separate external and internal encoding specifiers are provided. While here, fix the IO#set_encoding method documentation to state that either the first or second argument can be a string with an encoding name, and describe the behavior when the external encoding is binary. Fixes [Bug #18899]
* numeric.c: Fix round_half_even for specific values (#7023)Kenta Murata2022-12-261-1/+1
| | | | Handle the integert and the float parts separately in round_half_even to prevent error occursions in floating point calculation.
* Merge RubyGems/Bundler masterHiroshi SHIBATA2022-12-262-2/+2
| | | | from https://github.com/rubygems/rubygems/commit/72fd3dd2096af16d797ad0cd8e0d2a8869e240b3
* Skip insanely memory consuming testsNobuyoshi Nakada2022-12-263-2/+6
| | | | | These tests do not only consume hundreds GiB bytes memory, result in `rb_bug` when `RUBY_DEBUG` is enabled.
* Skip some examples for Ruby 3.3Hiroshi SHIBATA2022-12-265-5/+5
|
* Update Bundler to 2.4.1 & and RubyGems to 3.4.1David Rodríguez2022-12-253-0/+57
|
* Windows: Prefer USERPROFILE over HOMEPATHLars Kanis2022-12-241-0/+17
| | | | | | | | | HOMEPATH is set to "\WINDOWS\system32" when running per "runas" session. This directory is not writable by ordinary users, leading to errors with many ruby tools. Also config files in the home directory are not recognized. Still keeping HOME at first which is not used by native Windows, but by ruby specs and by MSYS2 environment.
* Windows: Fix encoding of Dir.homeLars Kanis2022-12-241-0/+11
| | | | | | | Dir.home returns an UTF-8 string since ruby-3.0, but the actual encoding of the bytes was CP_ACP or CP_OEMCP. That led to invalid bytes when calling Dir.home with an unicode username.
* Merge RubyGems-3.4.0 and Bundler-2.4.0Hiroshi SHIBATA2022-12-248-24/+332
|
* Removed the needless test guard for syntax_suggest.Hiroshi SHIBATA2022-12-231-4/+0
| | | | It's resolved by https://github.com/ruby/ruby/commit/5bb43aeb890657ea586e3fabbf763e5b5670ffd7
* [ruby/syntax_suggest] Remove debug printNobuyoshi Nakada2022-12-231-1/+1
| | | | https://github.com/ruby/syntax_suggest/commit/4d53d31bc5
* [ruby/syntax_suggest] Should not hardcode ruby nameNobuyoshi Nakada2022-12-231-9/+10
| | | | https://github.com/ruby/syntax_suggest/commit/0d5201b24d
* Always issue deprecation warning when calling Regexp.new with 3rd positional ↵Jeremy Evans2022-12-221-39/+43
| | | | | | | | | | | | | | argument Previously, only certain values of the 3rd argument triggered a deprecation warning. First step for fix for bug #18797. Support for the 3rd argument will be removed after the release of Ruby 3.2. Fix minor fallout discovered by the tests. Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>