summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2022-03-31Return only captured range in `MatchData` [Bug #18670]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5740 Merged-By: nobu <nobu@ruby-lang.org>
2022-03-31test/date/test_date_parse.rb: relax the time limitYusuke Endoh
The timeout was very strict for weak CI machines like qemu-riscv. Due to the additional overhead for Regexp.timeout=, it started failing on such machines. http://rubyci.s3.amazonaws.com/debian-riscv64/ruby-master/log/20220330T200018Z.fail.html.gz ``` 1) Error: TestDateParse#test__parse_too_long_year: Timeout::Error: execution expired ```
2022-03-31re.c: stop a wrong warning of "flags ignored" on Regexp.new(//)Yusuke Endoh
[Bug #18669]
2022-03-30Do not autosplat array in block call just because keywords acceptedJeremy Evans
If the block only accepts a single positional argument plus keywords, then do not autosplat. Still autosplat if the block accepts more than one positional argument in addition to keywords. Autosplatting a single positional argument plus keywords made sense in Ruby 2, since a final positional hash could be used as keywords, but it does not make sense in Ruby 3. Fixes [Bug #18633] Notes: Merged: https://github.com/ruby/ruby/pull/5665 Merged-By: jeremyevans <code@jeremyevans.net>
2022-03-30re.c: raise Regexp::TimeoutError instead of RuntimeErrorYusuke Endoh
Notes: Merged: https://github.com/ruby/ruby/pull/5703
2022-03-30re.c: Add `timeout` keyword for Regexp.new and Regexp#timeoutYusuke Endoh
Notes: Merged: https://github.com/ruby/ruby/pull/5703
2022-03-30re.c: Add Regexp.timeout= and Regexp.timeoutYusuke Endoh
[Feature #17837] Notes: Merged: https://github.com/ruby/ruby/pull/5703
2022-03-29Avoid trace events in implementation of TracePoint#enableJeremy Evans
This is more backwards compatible, and should fix issues with power_assert. Unfortunately, it requires using a sentinel value as the default value of target_thread, instead of the more natural expression used in the original approach. Notes: Merged: https://github.com/ruby/ruby/pull/5359
2022-03-29Make TracePoint#enable with block target current thread by defaultJeremy Evans
If TracePoint#enable is passed a block, it previously started the trace on all threads. This changes it to trace only the current thread by default. To limit the scope of the change, the current thread is only used by default if target and target_line are both nil. You can pass target_thread: nil to enable tracing on all threads, to get the previous default behavior. Fixes [Bug #16889] Notes: Merged: https://github.com/ruby/ruby/pull/5359
2022-03-29Fix multiplex backreferencs near end of string in regexp matchJeremy Evans
Idea from Jirka Marsik. Fixes [Bug #18631] Notes: Merged: https://github.com/ruby/ruby/pull/5710
2022-03-29Make define_singleton_method always define a public methodJeremy Evans
In very unlikely cases, it could previously define a non-public method starting in Ruby 2.1. Fixes [Bug #18561] Notes: Merged: https://github.com/ruby/ruby/pull/5636
2022-03-29Refactor test_dump_all to make assertions about the contents of the dumped hashJemma Issroff
Notes: Merged: https://github.com/ruby/ruby/pull/5728
2022-03-25Revert "Finer-grained inline constant cache invalidation"Nobuyoshi Nakada
This reverts commits for [Feature #18589]: * 8008fb7352abc6fba433b99bf20763cf0d4adb38 "Update formatting per feedback" * 8f6eaca2e19828e92ecdb28b0fe693d606a03f96 "Delete ID from constant cache table if it becomes empty on ISEQ free" * 629908586b4bead1103267652f8b96b1083573a8 "Finer-grained inline constant cache invalidation" MSWin builds on AppVeyor have been crashing since the merger. Notes: Merged: https://github.com/ruby/ruby/pull/5715 Merged-By: nobu <nobu@ruby-lang.org>
2022-03-24Raise RuntimeError if Kernel#binding is called from a non-Ruby frameJeremy Evans
Check whether the current or previous frame is a Ruby frame in call_trace_func before attempting to create a binding for the frame. Fixes [Bug #18487] Co-authored-by: Alan Wu <XrXr@users.noreply.github.com> Notes: Merged: https://github.com/ruby/ruby/pull/5567
2022-03-24Finer-grained inline constant cache invalidationKevin Newton
Current behavior - caches depend on a global counter. All constant mutations cause caches to be invalidated. ```ruby class A B = 1 end def foo A::B # inline cache depends on global counter end foo # populate inline cache foo # hit inline cache C = 1 # global counter increments, all caches are invalidated foo # misses inline cache due to `C = 1` ``` Proposed behavior - caches depend on name components. Only constant mutations with corresponding names will invalidate the cache. ```ruby class A B = 1 end def foo A::B # inline cache depends constants named "A" and "B" end foo # populate inline cache foo # hit inline cache C = 1 # caches that depend on the name "C" are invalidated foo # hits inline cache because IC only depends on "A" and "B" ``` Examples of breaking the new cache: ```ruby module C # Breaks `foo` cache because "A" constant is set and the cache in foo depends # on "A" and "B" class A; end end B = 1 ``` We expect the new cache scheme to be invalidated less often because names aren't frequently reused. With the cache being invalidated less, we can rely on its stability more to keep our constant references fast and reduce the need to throw away generated code in YJIT. Notes: Merged: https://github.com/ruby/ruby/pull/5433
2022-03-24[rubygems/rubygems] Avoid crash in test teardownDavid Rodríguez
If an exception happens during test `setup` method, the `teardown` method will still be run for cleaning up, but if some other errors occurs then, it will hide the original error. This is happening sometimes in CI where restoring original gem hooks is failing because the error in `setup` happened before the variable holding the original hooks was initialized. This commit moves initialization of `@orig_hooks` to the beginning of the `setup` method to avoid this issue. https://github.com/rubygems/rubygems/commit/8524d2b74d
2022-03-23Raise ArgumentError when calling Enumberable#inject without block or argumentsJeremy Evans
Previously, this would work as expected if the enumerable contained 0 or 1 element, and would raise LocalJumpError otherwise. That inconsistent behavior is likely to lead to bugs. Fixes [Bug #18635] Notes: Merged: https://github.com/ruby/ruby/pull/5690
2022-03-22[ruby/rdoc] Expand the enclosing tree of the current fileNobuyoshi Nakada
https://github.com/ruby/rdoc/commit/f9f90ef2ff
2022-03-22[ruby/rdoc] Fold files in the page directoryNobuyoshi Nakada
https://github.com/ruby/rdoc/commit/b7b4cdab6c
2022-03-22[ruby/rdoc] Add test_generate_pageNobuyoshi Nakada
https://github.com/ruby/rdoc/commit/c870284163
2022-03-19Make a dedecated assertion to clarify failed assertionsNobuyoshi Nakada
2022-03-18Add String#bytespliceShugo Maeda
Notes: Merged: https://github.com/ruby/ruby/pull/5584
2022-03-17Make Proc#parameters support lambda keyword for returning parameters as if ↵Jeremy Evans
lambda This makes it easier to use Proc#parameters to build wrappers. Implements [Feature #15357] Notes: Merged: https://github.com/ruby/ruby/pull/5677
2022-03-18A positional Hash is not keyword arguments [Bug #18632]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5676
2022-03-17A positional Hash is not keyword arguments [Bug #18632]Nobuyoshi Nakada
2022-03-17Update the test for [Feature #18615]Nobuyoshi Nakada
2022-03-16Revert "Fix version check to use Emoji version for ↵Martin Dürst
emoji-variation-sequences.txt" This reverts commit 48f1e8c5d85043e6adb8e93c94532daa201d42e9.
2022-03-16Revert "Allow `.0` version mismatch to pass the tests"Martin Dürst
This reverts commit fc6e4ce62bfa95b6a0d4d4898e1128c1fce4db8a.
2022-03-16[ruby/rdoc] Fix full name of known classNobuyoshi Nakada
Properly set the name of `File::Constants`, which is the only name with a namespace in `RDoc::KNOWN_CLASSES`, and fixes longstanding bug that `File::Constants` becomes `File::File::Constants`. When it is generated by `rb_file_const` in dir.c, `name` is set to the qualified name as same as `full_name`, and generated in the normal way in file.c later, already set `full_name` is cleared and `name` will be constructed from the enclosing namespace and the `name`. It will results in duplicated namespace, `File::File::Constants`. https://github.com/ruby/rdoc/commit/3a8d6df562
2022-03-16Allow `.0` version mismatch to pass the testsKoichi Sasada
With `make update-unicode`, some tests failed with the following error due to header mismatch. * `RbConfig::CONFIG['UNICODE_EMOJI_VERSION']` => 14.0 * the header line is `# emoji-variation-sequences-14.0.0.txt` So the last `.0` is mismatch. This patch allows additional `.0` in the header line. Please revert this patch when a correct patach is merged. ``` 1) Error: TestEmojiBreaks#test_embedded_emoji: RuntimeError: File Name Mismatch: line: # emoji-variation-sequences-14.0.0.txt, expected filename: emoji-variation-sequences.txt /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:88:in `block (2 levels) in read_data' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:82:in `foreach' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:82:in `block in read_data' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:79:in `each' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:79:in `read_data' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:111:in `all_tests' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:127:in `test_embedded_emoji' 2) Error: TestEmojiBreaks#test_mixed_emoji: RuntimeError: File Name Mismatch: line: # emoji-variation-sequences-14.0.0.txt, expected filename: emoji-variation-sequences.txt /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:88:in `block (2 levels) in read_data' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:82:in `foreach' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:82:in `block in read_data' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:79:in `each' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:79:in `read_data' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:111:in `all_tests' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:139:in `test_mixed_emoji' 3) Error: TestEmojiBreaks#test_single_emoji: RuntimeError: File Name Mismatch: line: # emoji-variation-sequences-14.0.0.txt, expected filename: emoji-variation-sequences.txt /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:88:in `block (2 levels) in read_data' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:82:in `foreach' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:82:in `block in read_data' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:79:in `each' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:79:in `read_data' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:111:in `all_tests' /tmp/ruby/v3/src/trunk/test/ruby/enc/test_emoji_breaks.rb:117:in `test_single_emoji' ```
2022-03-16Fix version check to use Emoji version for emoji-variation-sequences.txtMartin Dürst
2022-03-14[ruby/rdoc] Fold class and module indexNobuyoshi Nakada
https://github.com/ruby/rdoc/commit/4c7c46fcc4
2022-03-14Fix failuresKazuhiro NISHIYAMA
http://ci.rvm.jp/results/trunk-no-mjit@phosphorus-docker/3870646 ``` 1) Error: TestEmojiBreaks#test_single_emoji: RuntimeError: File Name Mismatch: line: # emoji-variation-sequences-14.0.0.txt, expected filename: emoji-variation-sequences.txt /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:84:in `block (2 levels) in read_data' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:82:in `foreach' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:82:in `block in read_data' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:79:in `each' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:79:in `read_data' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:105:in `all_tests' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:111:in `test_single_emoji' 2) Error: TestEmojiBreaks#test_mixed_emoji: RuntimeError: File Name Mismatch: line: # emoji-variation-sequences-14.0.0.txt, expected filename: emoji-variation-sequences.txt /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:84:in `block (2 levels) in read_data' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:82:in `foreach' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:82:in `block in read_data' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:79:in `each' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:79:in `read_data' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:105:in `all_tests' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:133:in `test_mixed_emoji' 3) Error: TestEmojiBreaks#test_embedded_emoji: RuntimeError: File Name Mismatch: line: # emoji-variation-sequences-14.0.0.txt, expected filename: emoji-variation-sequences.txt /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:84:in `block (2 levels) in read_data' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:82:in `foreach' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:82:in `block in read_data' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:79:in `each' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:79:in `read_data' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:105:in `all_tests' /tmp/ruby/v3/src/trunk-no-mjit/test/ruby/enc/test_emoji_breaks.rb:121:in `test_embedded_emoji' make: *** [uncommon.mk:823: yes-test-all] Error 3 ```
2022-03-13add some tests for Unicode Version 14.0.0Martin Dürst
2022-03-11Add test for protected methods on module includedJohn Hawthorn
Notes: Merged: https://github.com/ruby/ruby/pull/5642
2022-03-10Fix visibility of alias of zsuper methodsJeremy Evans
This was broken by 71c746379d5872e250d90ae45c585760afaf9516. Fixes [Bug #18600] Notes: Merged: https://github.com/ruby/ruby/pull/5592
2022-03-09[ruby/rdoc] Support crossref of methods with multiple argumentsPeter Zhu
For example, consider the following markup: C1#m(a, b) Before this patch, it generated this HTML: <p><a href=\"C1.html#method-i-m\"><code>C1#m</code></a>(a, b)</p> Which places the method arguments outside of the link. Now it generates this HTML: <a href=\"C1.html#method-i-m\"><code>C1#m(a, b)</code></a> https://github.com/ruby/rdoc/commit/05a2b2222b
2022-03-08test/io/console/test_io_console.rb: parens neededYusuke Endoh
2022-03-08Skip three tests on FreeBSD 13Yusuke Endoh
Some tests that use signals frequently fail randomly on FreeBSD 13. Maybe something around signals has changed in FreeBSD 13. This change skips them tentatively.
2022-03-07[ruby/ostruct] Fix class and method as attribute namesLadislav Gallay
https://github.com/ruby/ostruct/commit/7258535073
2022-03-02Exclude binstubs testsNobuyoshi Nakada
When relative loading is enabled, the executable ruby is expected installed at the same directory as the binstub.
2022-03-01Show embed status of array when len is 0 in objspace dumpPeter Zhu
Notes: Merged: https://github.com/ruby/ruby/pull/5609
2022-03-01Fix race in TestThread#test_thread_status_in_trapBenoit Daloze
* If the sleep is not enough to run the rest of the logic the process would be exited early, e.g., before the signal handler can run.
2022-02-25[ruby/date] Use `assert_deprecated_warn`Nobuyoshi Nakada
https://github.com/ruby/date/commit/c55004715a
2022-02-25[ruby/date] Deprecate the unintentional ability to parse `Symbol`Nobuyoshi Nakada
https://github.com/ruby/date/commit/d57818f3b3
2022-02-25[ruby/date] Scale timeoutsNobuyoshi Nakada
https://github.com/ruby/date/commit/2889698e2f
2022-02-25[ruby/date] Update testsNobuyoshi Nakada
https://github.com/ruby/date/commit/5a138afce9
2022-02-25[ruby/date] Anchor at beginning of numbersNobuyoshi Nakada
https://hackerone.com/reports/1254844 https://github.com/ruby/date/commit/2f7814cc22
2022-02-25[ruby/date] Anchor at beginning of numbersNobuyoshi Nakada
https://hackerone.com/reports/1254844 https://github.com/ruby/date/commit/7ffe25e458
2022-02-22[Feature #18249] Implement ABI checkingPeter Zhu
Header file include/ruby/internal/abi.h contains RUBY_ABI_VERSION which is the ABI version. This value should be bumped whenever an ABI incompatible change is introduced. When loading dynamic libraries, Ruby will compare its own `ruby_abi_version` and the `ruby_abi_version` of the loaded library. If these two values don't match it will raise a `LoadError`. This feature can also be turned off by setting the environment variable `RUBY_RUBY_ABI_CHECK=0`. This feature will prevent cases where previously installed native gems fail in unexpected ways due to incompatibility of changes in header files. This will force the developer to recompile their gems to use the same header files as the built Ruby. In Ruby, the ABI version is exposed through `RbConfig::CONFIG["ruby_abi_version"]`. Notes: Merged: https://github.com/ruby/ruby/pull/5474