summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2025-03-06Harden `TestObjSpace#test_memsize_of_root_shared_string`Jean Boussier
This test occasionally fail because it runs into a String instance that had its `==` method removed. I couldn't identify where this String comes from, but in general when using `each_object` it's best to not assume returned objectd are functional. By just inverting the operands of `==` we ensure it's always `String#==` that is called. ``` 1) Error: TestObjSpace#test_memsize_of_root_shared_string: NoMethodError: undefined method '==' for #<String:0x00007f9b50e8c978> /tmp/ruby/src/trunk-random1/test/objspace/test_objspace.rb:35:in 'block in TestObjSpace#test_memsize_of_root_shared_string' /tmp/ruby/src/trunk-random1/test/objspace/test_objspace.rb:35:in 'ObjectSpace.each_object' /tmp/ruby/src/trunk-random1/test/objspace/test_objspace.rb:35:in 'TestObjSpace#test_memsize_of_root_shared_string' ``` Notes: Merged: https://github.com/ruby/ruby/pull/12870
2025-03-06Fix flaky failure in TestSetTraceFunc#test_tracepoint_disable (#12854)Naoto Ono
TestSetTraceFunc#test_tracepoint_disable is a flaky and failing intermittently. Here is an example of failure logs. ``` 1) Failure: TestSetTraceFunc#test_tracepoint_disable [/home/runner/work/ruby/ruby/src/test/ruby/test_settracefunc.rb:857]: <[:foo, :disable, :foo, :disable]> expected but was <[:call, :call, :foo, :disable, :foo, :disable]>. ``` https://github.com/ruby/ruby/actions/runs/13619175633/job/38066208546?pr=12585#step:12:875 I printed values of TracePoint objects as follows, and checked the values when failing intermittently. https://github.com/ruby/ruby/blob/7f9a6fc582fb5cfd88ab73a61782f39894a37ba6/test/ruby/test_settracefunc.rb#L848 Here is the log when the TestSetTraceFunc#test_tracepoint_disable failed intermittently. `2025-03-05T09:08:37.4075411Z e: call, f: /home/runner/work/ruby/ruby/src/lib/tempfile.rb, l: 386, i: call, d: Tempfile::FinalizerManager` is an unexpected events. Thus, I modified test code so that we can filter out unexpected trace events. ``` 2025-03-05T09:08:37.4075411Z e: call, f: /home/runner/work/ruby/ruby/src/lib/tempfile.rb, l: 386, i: call, d: Tempfile::FinalizerManager 2025-03-05T09:08:37.4085009Z e: call, f: /home/runner/work/ruby/ruby/src/test/ruby/test_settracefunc.rb, l: 808, i: foo, d: TestSetTraceFunc 2025-03-05T09:08:37.4086042Z e: call, f: <internal:trace_point>, l: 295, i: disable, d: TracePoint 2025-03-05T09:08:37.4115693Z e: call, f: /home/runner/work/ruby/ruby/src/test/ruby/test_settracefunc.rb, l: 808, i: foo, d: TestSetTraceFunc 2025-03-05T09:08:37.4116734Z e: call, f: <internal:trace_point>, l: 295, i: disable, d: TracePoint ``` Notes: Merged-By: ono-max <onoto1998@gmail.com>
2025-03-05Replace tombstone when converting AR to ST hashJohn Hawthorn
[Bug #21170] st_table reserves -1 as a special hash value to indicate that an entry has been deleted. So that that's a valid value to be returned from the hash function, do_hash replaces -1 with 0 so that it is not mistaken for the sentinel. Previously, when upgrading an AR table to an ST table, rb_st_add_direct_with_hash was used which did not perform the same conversion, this could lead to a hash in a broken state where one if its entries which was supposed to exist being marked as a tombstone. The hash could then become further corrupted when the ST table required resizing as the falsely tombstoned entry would be skipped but it would be counted in num entries, leading to an uninitialized entry at index 15. In most cases this will be really rare, unless using a very poorly implemented custom hash function. This also adds two debug assertions, one that st_add_direct_with_hash does not receive the reserved hash value, and a second in rebuild_table_with, which ensures that after we rebuild/compact a table it contains the expected number of elements. Co-authored-by: Alan Wu <alanwu@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/12852
2025-03-05Add tests for alias locations with special variables $`, $', and $+ydah
Notes: Merged: https://github.com/ruby/ruby/pull/12837
2025-03-05do not reset `EnvUtil.timeout_scale`Koichi Sasada
Even if `setup` is omitted, but `teardown` is called and `EnvUtil.timeout_scale` was reset with `nil`. Notes: Merged: https://github.com/ruby/ruby/pull/12851
2025-03-05Revert "try to show timeout sec"Koichi Sasada
This reverts commit ce66eea167847d4300150791bde4932b907b0cc0. Notes: Merged: https://github.com/ruby/ruby/pull/12851
2025-03-04Move in-place interning spec to Ruby's testsJean Boussier
Fix: https://github.com/ruby/spec/issues/1249 JRuby and TruffleRuby can't implement this behavior. While quite a lot of code out there relies on it, if it's not implemented it will simply result in sligthly less efficient code, so not the end of the world. Notes: Merged: https://github.com/ruby/ruby/pull/12850
2025-03-04try to show timeout secKoichi Sasada
http://ci.rvm.jp/results/trunk-gc-asserts@ruby-sp2-noble-docker/5632508 ``` 1) Error: TestEval#test_outer_local_variable_under_gc_compact_stress: Test::Unit::ProxyError: execution of Test::Unit::CoreAssertions#assert_separately expired timeout (10 sec) pid 1339179 killed by SIGABRT (signal 6) (core dumped) ``` seems that timeout scale doesn't work even though `RUBY_TEST_TIMEOUT_SCALE` is specified. This patch tries to print the timeout with scale information. Notes: Merged: https://github.com/ruby/ruby/pull/12849
2025-03-03Allow YJIT `mem-size` and `call-threshold` to be set at runtime via ↵annichai-stripe
`YJIT.enable()` (#12505) * first commit * yjit.rb change * revert formatting * rename mem-size to exec-mem-size for correctness * wip, move setting into rb_yjit_enable directly * remove unused helper functions * add in call threshold * input validation with extensive eprintln * delete test script * exec-mem-size -> mem-size * handle input validation with asserts * add test cases related to input validation * modify test cases * move validation out of rs, into rb * add comments * remove trailing spaces * remove logging Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> * remove helper fn * Update test/ruby/test_yjit.rb Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> * trailing white space --------- Co-authored-by: Alan Wu <XrXr@users.noreply.github.com> Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com> Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2025-03-03[ruby/openssl] test_pkey_dh.rb: Merge 2 test_new_break tests to one test.Jun Aruga
Merge 2 test_new_break tests to one test because it's easy to maintain the test. https://github.com/ruby/openssl/commit/446ff3e11f
2025-03-03[rubygems/rubygems] Bump the rb-sys group across 2 directories with 1 updatedependabot[bot]
Bumps the rb-sys group with 1 update in the /test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib directory: [rb-sys](https://github.com/oxidize-rb/rb-sys). Bumps the rb-sys group with 1 update in the /test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example directory: [rb-sys](https://github.com/oxidize-rb/rb-sys). Updates `rb-sys` from 0.9.110 to 0.9.111 - [Release notes](https://github.com/oxidize-rb/rb-sys/releases) - [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.110...v0.9.111) Updates `rb-sys` from 0.9.110 to 0.9.111 - [Release notes](https://github.com/oxidize-rb/rb-sys/releases) - [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.110...v0.9.111) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch dependency-group: rb-sys - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch dependency-group: rb-sys ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/6452a6d6cd Notes: Merged: https://github.com/ruby/ruby/pull/12840
2025-03-03Implement POSTEXE NODE locationsydah
The following Location information has been added This is the information required for parse.y to be a universal parser: ``` ❯ ruby --parser=prism --dump=parsetree -e "END { }" @ ProgramNode (location: (1,0)-(1,8)) +-- locals: [] +-- statements: @ StatementsNode (location: (1,0)-(1,8)) +-- body: (length: 1) +-- @ PostExecutionNode (location: (1,0)-(1,8)) +-- statements: nil +-- keyword_loc: (1,0)-(1,3) = "END" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +-- opening_loc: (1,4)-(1,5) = "{" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +-- closing_loc: (1,7)-(1,8) = "}" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ```
2025-02-28[Bug #20682] Add sleep 0.1 to stabilize flaky failures on macOS (#12829)Naoto Ono
[Bug #20682] Add `sleep 0.1` to stabilize flaky failures on macOS Notes: Merged-By: ono-max <onoto1998@gmail.com>
2025-02-28[ruby/openssl] ssl: fix tests using TLS 1.1 or olderKazuki Yamaguchi
Commit https://github.com/ruby/openssl/commit/aa7f03e18f26 broke test_minmax_version and test_fallback_scsv on systems using OpenSSL 1.1.1 with a system-wide configuration file that specifies MinProtocol=TLSv1.2. http://rubyci.s3.amazonaws.com/debian11/ruby-master/log/20250228T003003Z.fail.html.gz http://rubyci.s3.amazonaws.com/rhel8/ruby-master/log/20250228T003003Z.fail.html.gz These test cases were already broken before the commit, but they were being skipped because check_supported_protocol_versions failed to detect TLS 1.1 support. To avoid affected by the configuration file, explicitly reset SSLContext#min_version when TLS 1.1 or older is required. The test cases are also broken with OpenSSL 3.0 or later, but this is not currently visible because it still fails to detect TLS 1.1 support. This is caused by the default SSLContext#security_level value, as OpenSSL 3.0 changed TLS 1.1 to be disabled at level 1. https://github.com/ruby/openssl/commit/6d0ea81b5e
2025-02-28Improve tests for small UTF regex with case fold.Maciek Rząsa
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/12787
2025-02-28Use mbuf instead of bitset for character class for small UTF. Fixes #16145Maciej Rzasa
Notes: Merged: https://github.com/ruby/ruby/pull/12787
2025-02-27[ruby/openssl] ssl: refactor check_supported_protocol_versionsKazuki Yamaguchi
As reported in <https://github.com/ruby/ruby/pull/12823>, check_supported_protocol_versions is unstable and occasionally fails with Errno::ECONNABORTED during SSLSocket#connect on Windows. When the server-side SSLContext specifies an unsupported SSL/TLS protocol version, start_server accepts a TCP connection but closes it without reading ClientHello, as SSLSocket#accept immediately raises an exception. With Winsock, this can cause the client-side SSLSocket#connect to raise Errno::ECONNABORTED. While the simplest fix is to add rescue Errno::ECONNABORTED, this method can be simplified. Instead, let's set up a server that accepts all protocol versions and test client connections with different settings. https://github.com/ruby/openssl/commit/aa7f03e18f
2025-02-27[ruby/openssl] digest: correct assert_equal usage in test_sha3Kazuki Yamaguchi
assert_equal accepts an expected value as the first argument. https://github.com/ruby/openssl/commit/8faa1d89de
2025-02-27[ruby/openssl] digest: always run SHA-3 and truncated SHA-2 testsKazuki Yamaguchi
The "pend" are no longer necessary, as they work with all OpenSSL variants we currently support. They were added in OpenSSL 1.1.1 and LibreSSL 3.8.0. They are also supported by the current AWS-LC release. This makes the SHA-3 tests run with AWS-LC correctly. AWS-LC does not report SHA-3 in OpenSSL::Digest.digests. https://github.com/ruby/openssl/commit/e1a6e9c081
2025-02-27[ruby/openssl] ssl: manually craft invalid SAN extensions in testsKazuki Yamaguchi
Starting with LibreSSL 3.5, OpenSSL::X509::ExtensionFactory refuses to create SAN extensions that are not valid according to RFC 6125. While this behavior makes sense, we need such invalid extensions to test our own validation routine. Let's construct SAN extensions manually instead. https://github.com/ruby/openssl/commit/b420d6d739
2025-02-27[ruby/openssl] Use ENV["TEST_RUBY_OPENSSL_FIPS_ENABLED"] instead of ↵Jun Aruga
OpenSSL::OPENSSL_FIPS. As OpenSSL::OPENSSL_FIPS always returns true on OpenSSL >= 3.0.0, we cannot use this constant as a flag to check whether the OpenSSL is FIPS or not. See <https://github.com/ruby/openssl/blob/d725783c5c180337f3d00efcba5b8744e0aea813/ext/openssl/ossl.c#L994-L1004>. Skip the test_fips_mode_get_with_fips_mode_set test in AWS-LC case. Because we don't test `OpenSSL.fips_mode=` on AWS-LC for now. We cannot change the value of the `OpenSSL.fips_mode` on AWS-LC. The `OpenSSL.fips_mode` in AWS-LC behaves as follows. On AWS-LC non-FIPS: ``` $ bundle exec ruby -I ./lib -ropenssl.so -e 'p OpenSSL.fips_mode' false $ bundle exec ruby -I ./lib -ropenssl.so -e 'OpenSSL.fips_mode = true; p OpenSSL.fips_mode' -e:1:in 'OpenSSL.fips_mode=': Turning on FIPS mode failed (OpenSSL::OpenSSLError) from -e:1:in '<main>' $ bundle exec ruby -I ./lib -ropenssl.so -e 'OpenSSL.fips_mode = false; p OpenSSL.fips_mode' false ``` On AWS-LC FIPS: ``` $ bundle exec ruby -I ./lib -ropenssl.so -e 'p OpenSSL.fips_mode' true $ bundle exec ruby -I ./lib -ropenssl.so -e 'OpenSSL.fips_mode = false; p OpenSSL.fips_mode' -e:1:in 'OpenSSL.fips_mode=': Turning off FIPS mode failed (OpenSSL::OpenSSLError) from -e:1:in '<main>' $ bundle exec ruby -I ./lib -ropenssl.so -e 'OpenSSL.fips_mode = true; p OpenSSL.fips_mode' true ``` https://github.com/ruby/openssl/commit/fd3e3e722f
2025-02-27[ruby/json] Ensure parser error snippets are valid UTF-8Jean Boussier
Fix: https://github.com/ruby/json/issues/755 Error messages now include a snippet of the document that doesn't parse to help locate the issue, however the way it was done wasn't UTF-8 aware, and it could result in exception messages with truncated characters. It would be nice to go a bit farther and actually support codepoints, but it's a lot of complexity to do it in C, perhaps if we move that logic to Ruby given it's not a performance sensitive codepath. https://github.com/ruby/json/commit/e144793b72
2025-02-27[Bug #21159] module names should not be modifiableNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/12819
2025-02-26[ruby/cgi] Escape/unescape unclosed tags as wellHiroshi SHIBATA
https://github.com/ruby/cgi/commit/cd1eb08076 Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2025-02-26[ruby/uri] Fix merger of URI with authority componentHiroshi SHIBATA
https://hackerone.com/reports/2957667 https://github.com/ruby/uri/commit/2789182478 Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2025-02-26[ruby/uri] Truncate userinfo with URI#join, URI#merge and URI#+Hiroshi SHIBATA
https://github.com/ruby/uri/commit/3675494839
2025-02-25[ruby/prism] Add a custom builder class for the parser translatorEarlopain
I want to add new node types to the parser translator, for example `itblock`. The bulk of the work is already done by prism itself. In the `parser` builder, this would be a 5-line change at most but we don't control that here. Instead, we can add our own builder and either overwrite the few methods we need, or just inline the complete builder. I'm not sure yet which would be better. `rubocop-ast` uses its own builder for `parser`. For this to correctly work, it must explicitly choose to extend the prism builder and use it, same as it currently chooses to use a different parser when prism is used. I'd like to enforce that the builder for prism extends its custom one since it will lead to some pretty weird issues otherwise. But first, I'd like to change `rubocop-ast` to make use of this. https://github.com/ruby/prism/commit/b080e608a8
2025-02-25Skip fiddle assertions if fiddle is not availableHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/12804
2025-02-25[rubygems/rubygems] Added fiddle dependency for TestGemExtCargoBuilderHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/a7c6696ffd Notes: Merged: https://github.com/ruby/ruby/pull/12804
2025-02-25[ruby/strscan] Enable tests passing on TruffleRubyAndrii Konchyn
(https://github.com/ruby/strscan/pull/144) Changes: - enabled tests passing on TruffleRuby - removed `truffleruby` and keep only `truffleruby-head` in CI https://github.com/ruby/strscan/commit/4aadfc8408 Notes: Merged: https://github.com/ruby/ruby/pull/12804
2025-02-25[ruby/strscan] Fix a bug that inconsistency of IndexError vs nil forNAITOH Jun
unknown capture group (https://github.com/ruby/strscan/pull/143) Fix https://github.com/ruby/strscan/pull/139 Reported by Benoit Daloze. Thanks!!! https://github.com/ruby/strscan/commit/bc8a0d2623 Notes: Merged: https://github.com/ruby/ruby/pull/12804
2025-02-25[ruby/strscan] Fix a bug that scanning methods that don't use RegexpNAITOH Jun
don't clear named capture groups (https://github.com/ruby/strscan/pull/142) Fix https://github.com/ruby/strscan/pull/135 https://github.com/ruby/strscan/commit/b957443e20 Notes: Merged: https://github.com/ruby/ruby/pull/12804
2025-02-25[ruby/pp] Ensure the thread local state is always set up.Samuel Williams
(https://github.com/ruby/pp/pull/38) https://github.com/ruby/pp/commit/5b5d483ac2
2025-02-24[Bug #21153] Add missing op-assign to top const in `command_asgn`Nobuyoshi Nakada
It was defined in `arg` only; moved that pattern to `op_asgn` rule to share it with `command_asgn`.
2025-02-22[ruby/openssl] test_ssl_session.rb: test adjustments to work with AWS-LCSamuel Chiang
The SSL SESSION files we were originally testing against use DHE and SSLv3. AWS-LC happens to have no support for either and we have newer possible alternatives available, so I've updated the respective files to use ECDHE-RSA-AES256-SHA with TLS 1.1 and 1.2. I've verified that these work as expected with all libcryptos we support. There are also a few SSL session discrepencies in AWS-LC when compared to OpenSSL. 1. AWS-LC has no support for internal session caching on the client-end. 2. AWS-LC supports internal session caching on the server, but SSL_get1_session does not return a resumable session with TLS 1.3 in AWS-LC. Users have to use the SSL_CTX_sess_set_new_cb (ctx.session_new_cb in Ruby) to retrieve the resumable session ticket. 3. AWS-LC has no current support for external session caching in TLS 1.3. https://github.com/ruby/openssl/commit/ca384b8e2f
2025-02-22[ruby/openssl] ssl: account for slight behavioral differences in AWS-LCSamuel Chiang
There are a few SSL discrepencies in AWS-LC when compared to OpenSSL. 1. AWS-LC has slightly different error messages (in all-caps). 2. AWS-LC has no support for DHE ciphersuites. 3. There are no concepts of SSL security levels within AWS-LC. 4. Similar to LibreSSL, there is no support for OPENSSL_CONF. https://github.com/ruby/openssl/commit/a60d050342
2025-02-22[ruby/openssl] pkey/ec: AWS-LC disallows serialization of explicit curvesSamuel Chiang
https://github.com/ruby/openssl/commit/65c5a772ea
2025-02-22[ruby/openssl] pkey/dh: tweak break tests for AWS-LCSamuel Chiang
We reecently tweaked some break tests in test_pkey_dh.rb due to different behavior with OpenSSL in FIPS mode. AWS-LC does not inherit the same specific behavior, so tests have been adjusted accordingly. https://github.com/ruby/openssl/commit/3117897dbc
2025-02-22[ruby/openssl] pkey: EVP_DigestVerify doesn't return -1 in AWS-LCSamuel Chiang
EVP_DigestVerify in OpenSSL returns 0 to indicate a signature verification failure and can return -1 to indicate other failures, such as invalid ASN1 contents. ruby/openssl also reflects that by returning false with 0 and raising an error with -1. EVP_DigestVerify in AWS-LC simply returns 0 for any failure. https://github.com/ruby/openssl/commit/be8ba76dc1
2025-02-22[ruby/openssl] pkey: AWS-LC disallows parsing of invalid keys and paramsSamuel Chiang
OpenSSL allows invalid EC keys or DH params to be parsed. The consuming application can then run parameter/key checks to check the validity of the parameters. We happen to run tests to verify that this behaves as expected. AWS-LC on the other hand, directly raises an error and disallows the invalid state to be parsed, rather than making it parsable and checking the validity later. Relevant tests have been adjusted accordingly to reflect this. https://github.com/ruby/openssl/commit/febe50be1b
2025-02-22[ruby/openssl] test_pkcs7.rb: skip AWS-LC's unsupported featuresSamuel Chiang
1. AWS-LC has no support for SMIME with PKCS7. That may change in the near future, so I've marked that with "pend" for now. 2. AWS-LC doesn't support printing of PKCS7 contents with PKCS7_print_ctx. 3. OpenSSL traditionally used indefinite-length encoding with ASN1_TFLG_NDEF in its implementation for PKCS7 EncryptedContent. AWS-LC uses explicit OCTET STRING headers to encode instead, which leads to a slight difference in serialized ASN1 contents from the two libraries. https://github.com/ruby/openssl/commit/78c585a9c2
2025-02-22[ruby/openssl] asn1: adjusting an ASN1 test to use CONTEXT_SPECIFICSamuel Chiang
AWS-LC's ASN1 parsing capabilities led to us examine some of our ASN1 tests. One test in test_asn1.rb happens to use a tag number of 8224. There are concerns with larger UNIVERSAL tags being ambiguous with negative ASN1 Integers, so I've adjusted the test to use CONTEXT_SPECIFIC instead with the same tag number (8224). https://github.com/ruby/openssl/commit/c73d9985ab
2025-02-22[ruby/openssl] test_config.rb: skip AWS-LC's unsupported featuresSamuel Chiang
AWS-LC has a few minor functionalities removed from NCONF_get_string. 1. Expanding of $foo to a previously-parsed value was removed. 2. OpenSSL falls back to using "default" with an unknown "section". AWS-LC does not support this behavior. 3. AWS-LC does not support parsing environment variables with "ENV" like LibreSSL. https://github.com/ruby/openssl/commit/e8de3bbd1e
2025-02-22[ruby/openssl] test_bn.rb: AWS-LC does not support BN::CONSTTIMESamuel Chiang
AWS-LC does not support BN_FLG_CONSTTIME due to its historically inconsistent constant-time guarantees. https://github.com/ruby/openssl/commit/9875a01b5f
2025-02-22[ruby/openssl] test_pkcs12.rb: don't use KEY_EX/SIG with AWS-LCSamuel Chiang
AWS-LC does not support the KEY_SIG or KEY_EX flags that were only ever supported by old MSIE. https://github.com/ruby/openssl/commit/d50528b4e2
2025-02-22[ruby/openssl] test_fips.rb: account for AWS-LC's FIPS modeSamuel Chiang
AWS-LC's FIPS mode is decided at compile time. FIPS in AWS-LC can't be toggled on and off like OpenSSL, so tests that attempt to do so are incompatible. https://github.com/ruby/openssl/commit/027de6732d
2025-02-21[ruby/stringio] Fix SEGV at unget to a null device StringIONobuyoshi Nakada
https://github.com/ruby/stringio/commit/eb4ee49218
2025-02-21[ruby/stringio] Suppress a warning for the chilled stringNobuyoshi Nakada
https://github.com/ruby/stringio/commit/4a35291ed3
2025-02-21[ruby/strscan] `scan_integer(base: 16)` ignore x suffix if notJean Boussier
followed by hexadecimal (https://github.com/ruby/strscan/pull/141) Fix: https://github.com/ruby/strscan/issues/140 `0x<EOF>`, `0xZZZ` should be parsed as `0` instead of not matching at all. https://github.com/ruby/strscan/commit/c4e4795ed2
2025-02-21[ruby/stringio] Allow seek when underlying string is frozenCharles Oliver Nutter
(https://github.com/ruby/stringio/pull/121) Fixes https://github.com/ruby/stringio/pull/119. Adds a test for this expectation. https://github.com/ruby/stringio/commit/3f90fe44c6