path: root/test
AgeCommit message (Collapse)Author
3 hoursAdd a test for svar #7225 (#7228)Takashi Kokubun
Notes: Merged-By: k0kubun <>
6 hours[Bug #19399] Parsing invalid heredoc inside block parameterNobuyoshi Nakada
Although this is of course invalid as Ruby code, allow to just parse and tokenize. Notes: Merged:
15 hours[Bug #19398] Memory leak in WeakMapPeter Zhu
There's a memory leak in ObjectSpace::WeakMap due to not freeing the `struct weakmap`. It can be seen in the following script: ``` 100.times do 10000.times do end # Output the Resident Set Size (memory usage, in KB) of the current Ruby process puts `ps -o rss= -p #{$$}` end ``` Notes: Merged:
17 hours[rubygems/rubygems] Introduce to specify deprecated version for ↵Hiroshi SHIBATA
rubygems_deprecate_command. We sometimes to remove minor command without bumping major version. This feature helps this deprecation process.
37 hoursYJIT: Fix BorrowMutError on BOP invalidation (#7212)Takashi Kokubun
Notes: Merged-By: maximecb <>
2 days[ruby/psych] Update for stricter 1.2 syntaxCharles Oliver Nutter
This allows these tests to pass on SnakeYAML Engine -- which is a 1.2-only YAML library -- while still passing on libyaml 1.1.
2 days[rubygems/rubygems] Don't load Bundler from RubyGems testsDavid Rodríguez Notes: Merged:
2 daysmkconfig: Map `includedir` only for system rubyNobuyoshi Nakada
Only when installing to the system path on macOS, prepend '$(SDKROOT)' and remap `includedir`. Fix Notes: Merged:
3 daysYJIT: Fix BorrowMutError on GC.compact (#7176)Takashi Kokubun
YJIT: Fix BorrowMutError Notes: Merged-By: k0kubun <>
3 days[rubygems/rubygems] install rust extensions into expected directory nestingMat Sadler
3 days[rubygems/rubygems] use cargo to get crate nameMat Sadler
the final copying of the extension into place has been slimmed down, reflecting that it only needs to copy a single file, rather than replicating the more involved process used for a C ext this also refactors #build so that #cargo_crate_name only needs to be called once, and hopefully the build flow is easier to understand
3 days[rubygems/rubygems] remove unused files in cargo builder test fixturesMat Sadler
3 daysFix parsing of regexps that toggle extended mode on/off inside regexpJeremy Evans
This was broken in ec3542229b29ec93062e9d90e877ea29d3c19472. That commit didn't handle cases where extended mode was turned on/off inside the regexp. There are two ways to turn extended mode on/off: ``` /(?-x:#y)#z /x =~ '#y' /(?-x)#y(?x)#z /x =~ '#y' ``` These can be nested inside the same regexp: ``` /(?-x:(?x)#x (?-x)#y)#z /x =~ '#y' ``` As you can probably imagine, this makes handling these regexps somewhat complex. Due to the nesting inside portions of regexps, the unassign_nonascii function needs to be recursive. In recursive mode, it needs to track both opening and closing parentheses, similar to how it already tracked opening and closing brackets for character classes. When scanning the regexp and coming to `(?` not followed by `#`, scan for options, and use `x` and `i` to determine whether to turn on or off extended mode. For `:`, indicting only the current regexp section should have the extended mode switched, recurse with the extended mode set or unset. For `)`, indicating the remainder of the regexp (or current regexp portion if already recursing) should turn extended mode on or off, just change the extended mode flag and keep scanning. While testing this, I noticed that `a`, `d`, and `u` are accepted as options, in addition to `i`, `m`, and `x`, but I can't see where those options are documented. I'm not sure whether or not handling `a`, `d`, and `u` as options is a bug. Fixes [Bug #19379] Notes: Merged:
3 daysbignum.c: rb_int_parse_cstr handle `0` stringsJean Boussier
[Bug #19390] We shouldn't check the string length when skipping zeros, as the string might only contains zero characters, resulting in an empty string. Notes: Merged:
3 daysSkip OpenSSL::TestHMAC#test_dup when running with RHEL9Hiroshi SHIBATA
5 days[ruby/stringio] [Bug #19389] Fix chomping with longer separatorNobuyoshi Nakada
6 days[ruby/bigdecimal] Add truffleruby in CIBenoit Daloze
6 days[ruby/openssl] Added CoreAssertionsHiroshi SHIBATA This commits swtich to use ruby/ruby's envutil.rb instead of vendored in openssl repo.
6 days[ruby/openssl] Do not require test file in a forked process in testsAndrew Konchin
6 days[rubygems/rubygems] Deprecate Gem::ListSamuel Giddins
It is unused, we will remove it in the next major version
9 daysAdd tests for variables in `END` block shared with the toplevelNobuyoshi Nakada
Notes: Merged:
9 days[rubygems/rubygems] Bump rb-sysdependabot[bot]
Bumps [rb-sys]( from 0.9.56 to 0.9.58. - [Release notes]( - [Commits]( --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <>
9 days[rubygems/rubygems] Bump rb-sys in ↵dependabot[bot]
/test/rubygems/test_gem_ext_cargo_builder/custom_name Bumps [rb-sys]( from 0.9.56 to 0.9.58. - [Release notes]( - [Commits]( --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <>
10 days[ruby/psych] Fix RestrictedYAMLTree allowing the Symbol class should allow ↵Jean Boussier
all symbols Ref: That's how it works for `safe_load`: ```ruby >> YAML.safe_load(':foo', permitted_classes: [Symbol]) => :foo ``` So `safe_dump` should mirror that.
11 daysFix Integer#ceildiv to respect #coerce (#7118)Kouhei Yanagita
Fixes [Bug #19343] Notes: Merged-By: mrkn <>
11 daysMore coverage tests & specs. (#7171)Samuel Williams
* Add spec for eval and line coverage. * Add test for main file coverage. Notes: Merged-By: ioquatix <>
13 days[ruby/reline] Add autoindent test for indent after bracket and newlinetompng
13 days[rubygems/rubygems] Clean test outputNobuyoshi Nakada
The output from the command is mixed in this test, even when successful. Use the output as a part of the message on failure instead.
13 days[Feature #19314] Add new arguments of String#bytespliceShugo Maeda
bytesplice(index, length, str, str_index, str_length) -> string bytesplice(range, str, str_range) -> string In these forms, the content of +self+ is replaced by str.byteslice(str_index, str_length) or str.byteslice(str_range); however the substring of +str+ is not allocated as a new string. Notes: Merged:
13 days[ci skip] Add ticket label to testPeter Zhu
13 daysdon't allow setting class variable on module that's frozen [Bug #19341]lukeg
Notes: Merged:
2023-01-19String#bytesplice should return selfShugo Maeda
In Feature #19314, we concluded that the return value of String#bytesplice should be changed from the source string to the receiver, because the source string is useless and confusing when extra arguments are added. This change should be included in Ruby 3.2.1.
2023-01-19Test some missing coverage too. (#7041)Samuel Williams
Notes: Merged-By: ioquatix <>
2023-01-18[ruby/reline] Add scrollbar scroll-to-bottom test and fix existing scrollbar ↵tompng
rendeing test
2023-01-18[ruby/reline] multiline_repl do not need to depend on RubyLextomoya ishida
( * multiline_repl do not need to depend on RubyLex * Add auto indent test
2023-01-17Change ArgumentError message when Comparable#clamp receives min value higher ↵Kaíque Kandy Koga
than max value Notes: Merged: Merged-By: jeremyevans <>
2023-01-17[rubygems/rubygems] Bump rb-sys in ↵dependabot[bot]
/test/rubygems/test_gem_ext_cargo_builder/custom_name Bumps [rb-sys]( from 0.9.54 to 0.9.56. - [Release notes]( - [Commits]( --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <>
2023-01-17Fix crash when defining ivars on special constantsPeter Zhu
[Bug #19339] Notes: Merged:
2023-01-17[rubygems/rubygems] Bump rb-sysdependabot[bot]
Bumps [rb-sys]( from 0.9.54 to 0.9.56. - [Release notes]( - [Commits]( --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <>
2023-01-15[Bug #19335] `Integer#remainder` should respect `#coerce` (#7120)Nobuyoshi Nakada
Also `Numeric#remainder` should. Notes: Merged-By: mrkn <>
2023-01-14[ruby/reline] Correspond to refactored RubyLexHASUMI Hitoshi
( * Correspond to refactored RubyLex ref: * Fix test_yamatanooroti
2023-01-14[ruby/irb] Store context in RubyLexStan Lo
Some background for this refactor: 1. Through a RubyLex instance's lifetime, the context passed to its methods should be the same. Given that `Context` is only initialised in `Irb#initialize`, this should be true. 2. When `RubyLex` is initialised, the context object should be accessible. This is also true in all 3 of ``'s invocations. With the above observations, we should be able to store the context in `RubyLex` as an instance variable. And doing so will make `RubyLex`'s instance methods easier to use and maintain.
2023-01-13Remove MIN_PRE_ALLOC_SIZE from Strings.Matt Valentine-House
This optimisation is no longer helpful now that we use VWA to allocate strings in larger size pools where they can be embedded. Notes: Merged:
2023-01-13[ruby/error_highlight] Identify which node in `Foo::Bar::Baz` causes a NameErrorYusuke Endoh
In Ruby 3.2 or later, a nested constant access like `Foo::Bar::Baz` is compiled to one instruction by the optimization We try to spot which sub-node caues a NameError in question based on the constant name. We will give up if the same constant name is accessed in a nested access (`Foo::Foo`). Fixes
2023-01-13Skip time-related assertions on /dev/nullNobuyoshi Nakada
2023-01-13Do not use VM stack for splat arg on cfuncKoichi Sasada
On the cfunc methods, if a splat argument is given, all array elements are expanded on the VM stack and it can cause SystemStackError. The idea to avoid it is making a hidden array to contain all parameters and use this array as an argv. This patch is reviesed version of The main change is all changes are closed around calling cfunc logic. Fixes [Bug #4040] Co-authored-by: Jeremy Evans <> Notes: Merged:
2023-01-12[ruby/irb] Avoid calling private methods on the main objectStan Lo
( When the main object is frozen, `IRB` wraps a `SimpleDelegator` around it. But because `SimpleDelegator` doesn't delegate private methods, methods like `require_relative` or `const_get` would cause error, which are needed for lazily loading commands. This commit works around this limitation by avoiding those private method calls when setting up command execution.
2023-01-12[ruby/mutex_m] Avoid anonymous evalJean Boussier
It makes it hard to locate code when profiling etc.
2023-01-12[ruby/reline] Pass unmodifined lines(that does not include escapetomoya ishida
sequence) to check_multiline_prompt ( * pass unmodified lines to check_multiline_prompt * Add test to check that output modified by output_modifier_proc is not passed to prompt_proc
2023-01-12[ruby/racc] Get rid of anonymous eval callsJean Boussier
Things declared in anonymous eval are always annoying to locate. (profilers, etc)