summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2022-06-08Fix MJIT's ISEQ_BODY macro usage at 5f10bd634fbTakashi Kokubun
2022-06-08MJIT: Ignore existence of .bundle.dSYM on macOSTakashi Kokubun
We could fix it, but removing files in the directory recursively is tedious in C and --mjit-debug is not a concern for users. We have TestMJITDebug for detecting linker problems that are ignored by -O. It's not really for maintaining --mjit-debug itself.
2022-06-08Add key force_major_gc_count to GC.stat_heapPeter Zhu
force_major_gc_count is the number of times the size pool forced major GC to run.
2022-06-07Refactor TestThreadInstrumentation to investigate CI flakinessJean Boussier
`test_thread_instrumentation_fork_safe` has been failing occasionaly on Ubuntu and Arch. At this stage we're not sure why, all we know is that the child exit with status 1. I suspect that something entirely unrelated cause the forked children to fail on exit, so by using `exit!(0)` and doing assertions in the parent I hope to be resilient to that. Notes: Merged: https://github.com/ruby/ruby/pull/5983
2022-06-07[ruby/error_highlight] Use Exception#detailed_message instead of overriding ↵Yusuke Endoh
#message (https://github.com/ruby/error_highlight/pull/24) See https://bugs.ruby-lang.org/issues/18564. Ref: https://github.com/ruby/did_you_mean/pull/177 https://github.com/ruby/error_highlight/commit/671b7c61b2
2022-06-07Manually merged https://github.com/ruby/did_you_mean/pull/177Hiroshi SHIBATA
2022-06-07Revert "error.c: Let Exception#inspect inspect its message"Yusuke Endoh
This reverts commit 9d927204e7b86eb00bfd07a060a6383139edf741. Notes: Merged: https://github.com/ruby/ruby/pull/5981
2022-06-07error.c: Let Exception#inspect inspect its messageYusuke Endoh
... only when the message string has a newline. `p StandardError.new("foo\nbar")` now prints `#<StandardError: "foo\nbar">' instead of: #<StandardError: bar> [Bug #18170] Notes: Merged: https://github.com/ruby/ruby/pull/4857
2022-06-07[ruby/rdoc] Allow boolean arguments to `rb_attr` and `rb_define_attr`Nobuyoshi Nakada
Currently only literal `0` and `1` are accepted as `read`/`write` flags. This patch allows other boolean arguments, C macros (`FALSE`/`TRUE`), Ruby `VALUE`s (`Qfalse`/`Qtrue`), and C99 `bool`s (`false`/`true`), as well. https://github.com/ruby/rdoc/commit/169dc02e3c
2022-06-06Ignore invalid escapes in regexp commentsJeremy Evans
Invalid escapes are handled at multiple levels. The first level is in parse.y, so skip invalid unicode escape checks for regexps in parse.y. Make rb_reg_preprocess and unescape_nonascii accept the regexp options. In unescape_nonascii, if the regexp is an extended regexp, when "#" is encountered, ignore all characters until the end of line or end of regexp. Unfortunately, in extended regexps, you can use "#" as a non-comment character inside a character class, so also parse "[" and "]" specially for extended regexps, and only skip comments if "#" is not inside a character class. Handle nested character classes as well. This issue doesn't just affect extended regexps, it also affects "(#?" comments inside all regexps. So for those comments, scan until trailing ")" and ignore content inside. I'm not sure if there are other corner cases not handled. A better fix would be to redesign the regexp parser so that it unescaped during parsing instead of before parsing, so you already know the current parsing state. Fixes [Bug #18294] Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/5721 Merged-By: jeremyevans <code@jeremyevans.net>
2022-06-06Fix Module#const_source_location for autoload constants with direct requiresJeremy Evans
If an autoload exists for a constant, but the path for the autoload was required, const_source_location would return [false, 0] instead of the actual file and line. This fixes it by setting the appropriate file and line in rb_const_set, and saving the file and line in const_tbl_update before they get reset by current_autoload_data. Fixes [Bug #18624] Notes: Merged: https://github.com/ruby/ruby/pull/5646
2022-06-06Fix Range#cover? returning true for beginless ranges of different typesJeremy Evans
Previously `(2..).cover?("2"..)` was false, but `(..2).cover?(.."2")` was true. This changes it so both are false, treating beginless ranges the same as endless ranges in regards to type checks. This also adds documentation to #cover? to describe behavior with beginless and endless ranges, testing each documentation example, which is how this bug was found. Fixes [Bug #18155] Notes: Merged: https://github.com/ruby/ruby/pull/5831
2022-06-06Add Module#undefined_instance_methodsJeremy Evans
Implements [Feature #12655] Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/5733 Merged-By: jeremyevans <code@jeremyevans.net>
2022-06-06[ruby/rdoc] Use runnable command as DUMMY_PAGERNobuyoshi Nakada
https://github.com/ruby/rdoc/commit/fec1ab2e41
2022-06-06[ruby/cgi] jruby supportPavel Rosický
https://github.com/ruby/cgi/commit/93326fb622
2022-06-06Use `sleep 0.5` for tests of GVL instrumentation APIYusuke Endoh
The tests fail randomly on some platforms. http://rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20220605T213004Z.fail.html.gz http://rubyci.s3.amazonaws.com/arch/ruby-master/log/20220605T210003Z.fail.html.gz ``` [15737/21701] TestThreadInstrumentation#test_thread_instrumentation_fork_safe/home/chkbuild/chkbuild/tmp/build/20220605T213004Z/ruby/tool/lib/test/unit/assertions.rb:109:in `assert': Expected 0 to be nonzero?. (Test::Unit::AssertionFailedError) ``` The failures seem to depend on context switches. I suspect `sleep 0.05` is too short, so this change tries to extend the wait time.
2022-06-04[ruby/rdoc] Remove `RDoc::RI::Driver#in_path?`Nobuyoshi Nakada
https://github.com/ruby/rdoc/commit/83051403d6
2022-06-04[ruby/rdoc] Enable pager testsNobuyoshi Nakada
https://github.com/ruby/rdoc/commit/ce63794fde
2022-06-03[Feature #18339] GVL Instrumentation APIJean Boussier
Ref: https://bugs.ruby-lang.org/issues/18339 Design: - This tries to minimize the overhead when no hook is registered. It should only incur an extra unsynchronized boolean check. - The hook list is protected with a read-write lock as to cause contention when some hooks are registered. - The hooks MUST be thread safe, and MUST NOT call into Ruby as they are executed outside the GVL. - It's simply a noop on Windows. API: ``` rb_internal_thread_event_hook_t * rb_internal_thread_add_event_hook(rb_internal_thread_event_callback callback, rb_event_flag_t internal_event, void *user_data); bool rb_internal_thread_remove_event_hook(rb_internal_thread_event_hook_t * hook); ``` You can subscribe to 3 events: - READY: called right before attempting to acquire the GVL - RESUMED: called right after successfully acquiring the GVL - SUSPENDED: called right after releasing the GVL. The hooks MUST be threadsafe, as they are executed outside of the GVL, they also MUST NOT call any Ruby API. Notes: Merged: https://github.com/ruby/ruby/pull/5500
2022-06-02Move `GC.verify_compaction_references` [Bug #18779]Nobuyoshi Nakada
Define `GC.verify_compaction_references` as a built-in ruby method, according to GC compaction support via `GC::OPTS`. Notes: Merged: https://github.com/ruby/ruby/pull/5972
2022-06-02Fix the condition when a new buffer is needed without GMPNobuyoshi Nakada
2022-06-01[rubygems/rubygems] Restore ability to load old marshalled gemspec that use ↵David Rodríguez
`YAML::PrivateType` This issue was not detected because when all traces of old YAML parser and emitter `Syck` were removed, this null-type.gemspec.rz marshalled gemspec was updated to no longer load `YAML::Syck::PrivateType` but load `Psych::PrivateType` instead. However, realworld old marshalled gemspecs still use the `YAML::PrivateType` constant, so this commit replaces the gemspec to be the real pry-0.4.7 marshalled gemspec, so that it catches this issue. https://github.com/rubygems/rubygems/commit/51b330b8d2
2022-06-01[rubygems/rubygems] Improve null private type testDavid Rodríguez
This test is making sure that RubyGems is able to load old marshalled gemspecs that include a field loading `YAML::PrivateType` instances in the `rubyforge_project` field instead of `nil` due to a bug in old YAML emitters. At some point, the `rubyforge_project` field was removed and this test was updated to just check another field. However, in the realworld other fields do not have this issue and the marshalled gemspec we use for testing still has this issue in the field reserved for the `rubyforge_project` field. So I think updating the test to check other field was not correct. Instead, since the `rubyforge_project` field is now ignored, we no longer need to worry about any conversion in this field. The only thing we care about is that the marshal loading still works (which requires that the constant is at least defined). So this commit updates the test to make this more clear. https://github.com/rubygems/rubygems/commit/cddfacf6d4
2022-05-31Skip failing test with freebsdHiroshi SHIBATA
2022-05-31[rubygems/rubygems] Bump rb-sys in ↵dependabot[bot]
/test/rubygems/test_gem_ext_cargo_builder/custom_name Bumps [rb-sys](https://github.com/ianks/rb-sys) from v0.7.3 to v0.9.0. - [Release notes](https://github.com/ianks/rb-sys/releases) - [Commits](https://github.com/ianks/rb-sys/compare/4a5dd9782075fc6e197976eb2188231a388c3c95...https://github.com/rubygems/rubygems/commit/e4f00b9761af) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/874bbc96b2
2022-05-31[rubygems/rubygems] Bump rb-sysdependabot[bot]
Bumps [rb-sys](https://github.com/ianks/rb-sys) from v0.7.3 to v0.9.0. - [Release notes](https://github.com/ianks/rb-sys/releases) - [Commits](https://github.com/ianks/rb-sys/compare/4a5dd9782075fc6e197976eb2188231a388c3c95...https://github.com/rubygems/rubygems/commit/e4f00b9761af) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/eb31b14a37
2022-05-30Fix use-after-free with interacting TracePointsAlan Wu
`vm_trace_hook()` runs global hooks before running local hooks. Previously, we read the local hook list before running the global hooks which led to use-after-free when a global hook frees the local hook list. A global hook can do this by disabling a local TracePoint, for example. Delay local hook list loading until after running the global hooks. Issue discovered by Jeremy Evans in GH-5862. [Bug #18730] Notes: Merged: https://github.com/ruby/ruby/pull/5865
2022-05-30Skip failing test with freebsdHiroshi SHIBATA
2022-05-30[ruby/stringio] Accept external and internal encodings pairNobuyoshi Nakada
Fix https://github.com/ruby/stringio/pull/16 https://github.com/ruby/stringio/commit/c8a69e80d2
2022-05-30Also skip failing test with freebsd 12Hiroshi SHIBATA
2022-05-30[ruby/stringio] Fix handling of chomp with paragraph separatorJeremy Evans
Try to mirror IO behavior, where chomp takes out the entire paragraph separators between entries, but does not chomp a single line separator at the end of the string. Partially Fixes [Bug #18768] https://github.com/ruby/stringio/commit/a83ddbb7f0
2022-05-30[ruby/stringio] Ignore chomp keyword for nil separatorJeremy Evans
nil separator means no separator at all, so nothing should be chomped. Partial fix for Ruby [Bug #18770] https://github.com/ruby/stringio/commit/feaa2ec631
2022-05-30[ruby/stringio] Fix each with multiple character string and chompJeremy Evans
Previously, this could result in an infinite loop. Always update the e pointer in this case, setting w when chomping so the chomped data is not included in the output. Fixes [Bug #18769] https://github.com/ruby/stringio/commit/4bf64d5130
2022-05-30[ruby/stringio] Fix expanding size at ungetc/ungetbyteNobuyoshi Nakada
https://github.com/ruby/stringio/commit/a35268a3ac
2022-05-30Skip failing test with freebsdHiroshi SHIBATA
2022-05-28[rubygems/rubygems] Fix rubygems update when non default `--install-dir` is ↵David Rodríguez
configured https://github.com/rubygems/rubygems/commit/9f3b21192d
2022-05-26Fix GC race condition in autoload.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5941
2022-05-25Retain reference to blocking fibers.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/5926
2022-05-24Define unsupported GC compaction methods as rb_f_notimplementMike Dalessio
Fixes [Bug #18779] Define the following methods as `rb_f_notimplement` on unsupported platforms: - GC.compact - GC.auto_compact - GC.auto_compact= - GC.latest_compact_info - GC.verify_compaction_references This change allows users to call `GC.respond_to?(:compact)` to properly test for compaction support. Previously, it was necessary to invoke `GC.compact` or `GC.verify_compaction_references` and check if those methods raised `NotImplementedError` to determine if compaction was supported. This follows the precedent set for other platform-specific methods. For example, in `process.c` for methods such as `Process.fork`, `Process.setpgid`, and `Process.getpriority`. Notes: Merged: https://github.com/ruby/ruby/pull/5934
2022-05-23[rubygems/rubygems] Support the change of did_you_mean about ↵Yusuke Endoh
Exception#detailed_message I am asking did_you_mean to use Exception#detailed_message to add "Did you mean?" suggestion instead of overriding #message method. https://github.com/ruby/did_you_mean/pull/177 Unfortunately, the change will affect Gem::UnknownCommandError, which excepts did_you_mean to override #message method. This PR absorbs the change of did_you_mean. Gem::CommandManager now calls #detailed_message method to get a message string with "Did you mean?" suggestion from an exception. https://github.com/rubygems/rubygems/commit/8f104228d3
2022-05-23Prevent a warning: `*' interpreted as argument prefixYusuke Endoh
2022-05-20Make the test class naming consistentTakashi Kokubun
forgot to commit this in ead96e7b44b98bef4896d836239345012821f1d2
2022-05-20Rename test_jit to test_mjitTakashi Kokubun
to avoid confusion with YJIT
2022-05-20Rewrite with assert_ractor for multiple ractor environmentHiroshi SHIBATA
2022-05-20Picked the missing test file from ↵Hiroshi SHIBATA
https://github.com/ruby/did_you_mean/commit/8faba54b2d3ec9aa570691775f143801308c5b2f
2022-05-20[ruby/racc] Show diffsNobuyoshi Nakada
https://github.com/ruby/racc/commit/0b679e2f69
2022-05-20[flori/json] Fix parser bug for empty string allocationAndrew Bromwich
When `HAVE_RB_ENC_INTERNED_STR` is enabled it is possible to pass through a null pointer to `rb_enc_interned_str` resulting in a segfault Fixes #495 https://github.com/flori/json/commit/b59368a8c2
2022-05-20[flori/json] Remove unknown keyword arg from DateTime.parseCharles Oliver Nutter
This snuck in while addding tests for the `create_additions` feature. Caught by JRuby when we added the `limit` option to the Date/DateTime parsing methods, which causes this to be rejected as an unknown keyword. https://github.com/flori/json/commit/b1007dff66
2022-05-20Merge RubyGems and Bundler HEADHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/125415593ead9ab69a9f0bb5392c9d7ec61b1f51
2022-05-19YJIT: Add opt_succ (#5919)Takashi Kokubun
Notes: Merged-By: maximecb <maximecb@ruby-lang.org>