summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2022-07-22Dump non-ASCII char as unsignedNobuyoshi Nakada
Non-ASCII code may be negative on platforms plain char is signed. Notes: Merged: https://github.com/ruby/ruby/pull/6166
2022-07-21Do not chomp trailing line separator IO#each with nil separator and chompJeremy Evans
nil separator means no sepator, so chomp should not remove a line separator. Partially Fixes [Bug #18770] Notes: Merged: https://github.com/ruby/ruby/pull/6164
2022-07-21Revert "objspace_dump.c: skip dumping method name if not pure ASCII"Jean byroot Boussier
This reverts commit 79406e3600862bbb6dcdd7c5ef8de1978e6f916c. Notes: Merged: https://github.com/ruby/ruby/pull/6165
2022-07-21objspace_dump.c: skip dumping method name if not pure ASCIIJean Boussier
Sidekiq has a method named `❨╯°□°❩╯︵┻━┻`which corrupts heap dumps. Normally we could just dump is as is since it's valid UTF-8 and need no escaping. But our code to escape control characters isn't UTF-8 aware so it's more complicated than it seems. Ultimately since the overwhelming majority of method names are pure ASCII, it's not a big loss to just skip it. Notes: Merged: https://github.com/ruby/ruby/pull/6161
2022-07-21Revert "Do not chomp trailing line separator IO#each with nil separator and ↵Jeremy Evans
chomp" This reverts commit 04f86ad0b5d2fe4711ff300d855228a6aed55f33. This is causing CI issues, reverting for now.
2022-07-21Do not have class/module keywords look up ancestors of ObjectJeremy Evans
Fixes case where Object includes a module that defines a constant, then using class/module keyword to define the same constant on Object itself. Implements [Feature #18832] Notes: Merged: https://github.com/ruby/ruby/pull/6048
2022-07-21Do not chomp trailing line separator IO#each with nil separator and chompJeremy Evans
nil separator means no sepator, so chomp should not remove a line separator. Partially Fixes [Bug #18770] Notes: Merged: https://github.com/ruby/ruby/pull/5959
2022-07-21Make String#each_line work correctly with paragraph separator and chompJeremy Evans
Previously, it was including one newline when chomp was used, which is inconsistent with IO#each_line behavior. This makes behavior consistent with IO#each_line, chomping all paragraph separators (multiple consecutive newlines), but not single newlines. Partially Fixes [Bug #18768] Notes: Merged: https://github.com/ruby/ruby/pull/5960
2022-07-21[ruby/digest] Ignore test_ractor.rb on non-Ractor rubyNobuyoshi Nakada
https://github.com/ruby/digest/commit/352b8c1636
2022-07-21[ruby/digest] Find an available digest algorithm to testNobuyoshi Nakada
https://github.com/ruby/digest/commit/8844716793
2022-07-20Ensure _id2ref finds symbols with the correct typeDaniel Colson
Prior to this commit it was possible to call `ObjectSpace._id2ref` with an offset static symbol object_id and get back a new, incorrectly tagged symbol: ``` > sensible_sym = ObjectSpace._id2ref(:a.object_id) => :a > nonsense_sym = ObjectSpace._id2ref(:a.object_id + 40) => :a > sensible_sym == nonsense_sym => false ``` `nonsense_sym` ends up tagged with `RUBY_ID_INSTANCE` instead of `RB_ID_LOCAL`. That means we can do silly things like: ``` > foo = Object.new > foo.instance_variable_set(:a, 123) (irb):2:in `instance_variable_set': `a' is not allowed as an instance variable name (NameError) > foo.instance_variable_set(ObjectSpace._id2ref(:a.object_id + 40), 123) => 123 > foo.instance_variables => [:a] ``` This was happening because `get_id_entry` ignores the tag bits when looking up the symbol. So `rb_id2str(symid)` would return a value and then we'd continue on with the nonsense `symid`. This commit prevents the situation by checking that the `symid` actually matches what we get back from `get_id_entry`. Now we get a `RangeError` for the nonsense id: ``` > ObjectSpace._id2ref(:a.object_id) => :a > ObjectSpace._id2ref(:a.object_id + 40) (irb):1:in `_id2ref': 0x000000000013f408 is not symbol id value (RangeError) ``` Co-authored-by: John Hawthorn <jhawthorn@github.com> Notes: Merged: https://github.com/ruby/ruby/pull/6147
2022-07-20Match +YJIT in Ruby desc when testing segv (#6141)Noah Gibbs
In test_bug_reporter and test_rubyoptions we intentionally test child processes that cause SEGV. We run them with YJIT if the parent uses YJIT so that the text description matches the parent RUBY_DESCRIPTION. Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-07-20[rubygems/rubygems] Fix `ruby setup.rb --destdir /foo` modifying global specsDavid Rodríguez
Running a command like that is actually removing any previous default bundler specs in the default RubyGems installation (outside of destdir). It should instead only modify destdir. https://github.com/rubygems/rubygems/commit/5ed275383c
2022-07-20[rubygems/rubygems] Refactor destdir checksDavid Rodríguez
https://github.com/rubygems/rubygems/commit/ca956c0de2
2022-07-20[rubygems/rubygems] More cleanupDavid Rodríguez
https://github.com/rubygems/rubygems/commit/6012800a20
2022-07-20[rubygems/rubygems] Unify common logicDavid Rodríguez
https://github.com/rubygems/rubygems/commit/e5434be14c
2022-07-20[rubygems/rubygems] Fix casing typo when resetting ↵David Rodríguez
`RbConfig::CONFIG["ENABLE_SHARED"]` https://github.com/rubygems/rubygems/commit/3d1ae0050b
2022-07-20[Bug #18905] Check symbol name types more strictlyNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6149
2022-07-19[ruby/fileutils] Add an octal prefix to clarify to be octalNobuyoshi Nakada
https://github.com/ruby/fileutils/commit/332025bc02 Co-Authored-By: David Rodríguez <deivid.rodriguez@riseup.net>
2022-07-19[rubygems/rubygems] Bump rb-sys in ↵dependabot[bot]
/test/rubygems/test_gem_ext_cargo_builder/custom_name Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.19 to 0.9.20. - [Release notes](https://github.com/oxidize-rb/rb-sys/releases) - [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.19...v0.9.20) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/2689b6b940
2022-07-19[rubygems/rubygems] Bump rb-sysdependabot[bot]
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.19 to 0.9.20. - [Release notes](https://github.com/oxidize-rb/rb-sys/releases) - [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.19...v0.9.20) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/ee2facb8f2
2022-07-18[ruby/rdoc] Fix call-seq for aliased method with similar namesPeter Zhu
deduplicate_call_seq has a bug that skips call-seq for methods where the alias is a prefix of the method name. For example, if the alias name is "each" and the current method name is "each_line", then deduplicate_call_seq will skip all call-seq for "each_line" since it will believe that it is for the alias. https://github.com/ruby/rdoc/commit/1148988ccc
2022-07-18[rubygems/rubygems] Fix upgrading RubyGems with a customized `Gem.default_dir`David Rodríguez
https://github.com/rubygems/rubygems/commit/16d01f9486
2022-07-18[Bug #18922] Normalize time at 24:00:00 UTCNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6146 Merged-By: nobu <nobu@ruby-lang.org>
2022-07-17[rubygems/rubygems] Stop using `/dev/null` for silent ui for WASI platformYuta Saito
WASI doesn't guarantee that `/dev/null` is present. So without this patch, we needed to mount host's `/dev` directory to WASI guest process to avoid `ENOTCAPABLE` error while `require "bundler/setup"` https://github.com/rubygems/rubygems/commit/e9187ab61f
2022-07-17Fix tests for ABI incompatible binary error messagsNobuyoshi Nakada
2022-07-16[rubygems/rubygems] Drop support for old `Gem::Specification` versionsNobuyoshi Nakada
`specification_version` method was added before RubyGems 1.0, and `add_runtime_dependency` method was before 1.2. These seem aged enough to remove. https://github.com/rubygems/rubygems/commit/92770c5cd9
2022-07-15YJIT: Add send unit tests (#6143)Noah Gibbs
Add send unit tests for YJIT Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-07-16[ruby/reline] Use color name instead of code (integer) in dialog color APIsst0012
As pointed out in the [comment](https://github.com/ruby/reline/pull/413#issuecomment-1168033973), the code is actually a control sequence and not only for colors. To make the dialog color APIs safer to use, we should restrict its usages and extract away the bg/fg concept from the input. So in this commit, I made these changes: 1. The dialog_*_bg/fg_color APIs only takes and returns color names (symbol): - :black - :red - :green - :yellow - :blue - :magenta - :cyan - :white 2. Add additional dialog_*_bg/fg_color_sequence APIs to access the raw code. https://github.com/ruby/reline/commit/b32a977766
2022-07-15Implement Objects on VWAPeter Zhu
This commit implements Objects on Variable Width Allocation. This allows Objects with more ivars to be embedded (i.e. contents directly follow the object header) which improves performance through better cache locality. Notes: Merged: https://github.com/ruby/ruby/pull/6117
2022-07-14MJIT: Merge mjit_worker.c back to mjit.c (#6138)Takashi Kokubun
Since #6006, we no longer avoid executing GC on mjit_worker.c and thus there's no need to carefully change how we write code whether you're in mjit.c or mjit_worker.c anymore. Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-07-14[ruby/set] Get rid of use of `Gem::Version`Nobuyoshi Nakada
When retrying in ruby's test, it seems possible that `Gem` is not loaded. ``` 1) Error: TC_Set_Builtin#test_to_set: NameError: uninitialized constant TC_Set_Builtin::Gem /export/home/chkbuild/chkbuild-gcc/tmp/build/20220708T070011Z/ruby/test/test_set.rb:844:in `should_omit?' /export/home/chkbuild/chkbuild-gcc/tmp/build/20220708T070011Z/ruby/test/test_set.rb:869:in `test_to_set' 2) Error: TC_Set_Builtin#test_Set: NameError: uninitialized constant TC_Set_Builtin::Gem /export/home/chkbuild/chkbuild-gcc/tmp/build/20220708T070011Z/ruby/test/test_set.rb:844:in `should_omit?' /export/home/chkbuild/chkbuild-gcc/tmp/build/20220708T070011Z/ruby/test/test_set.rb:849:in `test_Set' ``` This is by `Gem::Version` only, just compare as array of integers instead. https://github.com/ruby/set/commit/cde0a4bbc7
2022-07-13GVL Instrumentation: remove the EXITED count assertionJean Boussier
It's very flaky for some unknown reason. Something we have an extra EXITED event. I suspect some other test is causing this. Notes: Merged: https://github.com/ruby/ruby/pull/6133
2022-07-13thread/test_instrumentation_api: cleanup all existing threads in setupJean Boussier
We saw the following failure: ``` TestThreadInstrumentation#test_thread_instrumentation [/tmp/ruby/v3/src/trunk-random3/test/-ext-/thread/test_instrumentation_api.rb:25]: Expected 0..3 to include 4. ``` Which shouldn't happen unless somehow there was a leaked thread. Notes: Merged: https://github.com/ruby/ruby/pull/6128
2022-07-13Merge RubyGems and Bundler masterHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/6124
2022-07-12[Feature #18901] Don't run size pool move tests without VWAMatt Valentine-House
Notes: Merged: https://github.com/ruby/ruby/pull/6099
2022-07-12[Feature #18901] Support size pool movement for ArraysMatt Valentine-House
This commit enables Arrays to move between size pools during compaction. This can occur if the array is mutated such that it would fit in a different size pool when embedded. The move is carried out in two stages: 1. The RVALUE is moved to a destination heap during object movement phase of compaction 2. The array data is re-embedded and the original buffer free'd if required. This happens during the update references step Notes: Merged: https://github.com/ruby/ruby/pull/6099
2022-07-12Refactor tests for ThreadInstrumentation countersNobuyoshi Nakada
* Extracted some assertions. * Assert counter values should be positive. Notes: Merged: https://github.com/ruby/ruby/pull/6111
2022-07-12Use `IO.popen` to fork and exit the child process without cleanupNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6111
2022-07-12[rubygems/rubygems] Bump rb-sysdependabot[bot]
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.18 to 0.9.19. - [Release notes](https://github.com/oxidize-rb/rb-sys/releases) - [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.18...v0.9.19) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/962c717083
2022-07-12[rubygems/rubygems] Bump rb-sys in ↵dependabot[bot]
/test/rubygems/test_gem_ext_cargo_builder/custom_name Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.18 to 0.9.19. - [Release notes](https://github.com/oxidize-rb/rb-sys/releases) - [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.18...v0.9.19) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/186d2b83f1
2022-07-11Fix a regression of b2e58b02aec73f9c350bf109c021c180fc699cccYusuke Endoh
At that commit, I fixed a wrong conditional expression that was always true. However, that seemed to have caused a regression. [Bug #18906] This change removes the condition to make the code always enabled. It had been enabled until that commit, albeit unintentionally, and even if it is enabled it only consumes a tiny bit of memory, so I believe it is harmless. [Bug #18906] Notes: Merged: https://github.com/ruby/ruby/pull/6112
2022-07-11[ruby/reline] Add tests for top-level dialog color APIsst0012
https://github.com/ruby/reline/commit/347a468c59
2022-07-11Replace use of double_heap in tests with expand_heapMatt Valentine-House
Notes: Merged: https://github.com/ruby/ruby/pull/6107
2022-07-10Use NO_JIT_DESCRIPTION only when neededTakashi Kokubun
Apparently 203801566a186b7b1cbe899a06d0832923a1bdf9 broke YJIT's CI.
2022-07-10Fix #5872 for MJIT GitHub ActionsTakashi Kokubun
If you run tests with RUN_OPTS=--mjit, the test fixes in https://github.com/ruby/ruby/pull/5872 don't work.
2022-07-11[ruby/rdoc] `RubyVM` is implementation dependentNobuyoshi Nakada
https://github.com/ruby/rdoc/commit/aaeb5ce1ce
2022-07-11[ruby/rdoc] Fix the known classes moreNobuyoshi Nakada
https://github.com/ruby/rdoc/commit/9f47234e0e
2022-07-11[ruby/rdoc] Fix an exception class nameNobuyoshi Nakada
https://github.com/ruby/rdoc/commit/87301da71b
2022-07-09[ruby/openssl] Skip a new test when old OpenSSLNobuyoshi Nakada
It does not raise an error when setting an invalid value to SSLContext ciphers on Ubuntu 18.04. https://github.com/ruby/openssl/commit/8c96a69b0d