summaryrefslogtreecommitdiff
path: root/version.h
AgeCommit message (Collapse)Author
2022-04-12Fix dtoa buffer overrunv3_0_4nagachika
2022-04-12Just free compiled pattern if no space is usednagachika
2022-04-12* 2022-04-12 [ci skip]git
2022-04-02merge revision(s) 035b75c8f4097a48cde3cebc5db5e2efddc21546:nagachika
Update zlib version to 1.2.12 --- .appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
2022-04-02remove bundled zlib patch file for mswin platform. It's already applied at ↵nagachika
zlib-1.2.12.
2022-04-02remove bundled zlib patch file for mswin platform. It's already applied at ↵nagachika
zlib-1.2.12.
2022-04-02rename filepath in patch for zlib.nagachika
2022-04-02rename bundled zlib patch file for mswin platform.nagachika
2022-04-02* 2022-04-02 [ci skip]git
2022-03-21merge revision(s) ↵nagachika
d0d6227a0da5925acf946a09191f172daf53baf2,fff1edf23ba28267bf57097c269f7fa87530e3fa: [Backport #17529] alen should be actions number on ractor_select() alen was number of rs, but it should be actions number (taking ractors + receiving + yielding). --- ractor.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) fix Ractor.yield(obj, move: true) Ractor.yield(obj, move: true) and Ractor.select(..., yield_value: obj, move: true) tried to yield a value with move semantices, but if the trial is faild, the obj should not become a moved object. To keep this rule, `wait_moving` wait status is introduced. New yield/take process: (1) If a ractor tried to yield (move:true), make taking racotr's wait status `wait_moving` and make a moved object by `ractor_move(obj)` and wakeup taking ractor. (2) If a ractor tried to take a message from a ractor waiting fo yielding (move:true), wakeup the ractor and wait for (1). --- bootstraptest/test_ractor.rb | 25 +++++++++++++++ ractor.c | 73 +++++++++++++++++++++++++++++++++++--------- ractor_core.h | 1 + 3 files changed, 84 insertions(+), 15 deletions(-)
2022-03-21update common.mk dependency to follow up the previous commit.nagachika
2022-03-21class.c: include gc.h to suppress 'implicit declaration of function' on some ↵nagachika
environments.
2022-03-21merge revision(s) 97426e15d721119738a548ecfa7232b1d027cd34: [Backport #18627]nagachika
[Bug #18627] Fix crash when including module During lazy sweeping, the iclass could be a dead object that has not yet been swept. However, the chain of superclasses of the iclass could already have been swept (and become a new object), which would cause a crash when trying to read the object. --- class.c | 48 ++++++++++++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 18 deletions(-)
2022-03-13merge revision(s) 496591de96b261b8789332c7f8b2bfbd17658955: [Backport #18578]nagachika
st.c: Do not clear entries_bound when calling Hash#shift for empty hash tab->entries_bound is used to check if the bins are full in rebuild_table_if_necessary. Hash#shift against an empty hash assigned 0 to tab->entries_bound, but didn't clear the bins. Thus, the table is not rebuilt even when the bins are full. Attempting to add a new element into full-bin hash gets stuck. This change stops clearing tab->entries_bound in Hash#shift. [Bug #18578] --- st.c | 1 - test/ruby/test_hash.rb | 13 +++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-)
2022-03-13merge revision(s) 29f6f79e7396018962eb25c5f5e409f5fe28a73b: [Backport ↵nagachika
#17788] [Backport #18574] Get `ruby_nonempty_memcpy` to have C linkage Fixes [Bug #17788] --- include/ruby/internal/memory.h | 2 ++ 1 file changed, 2 insertions(+)
2022-03-13merge revision(s) c79d2e54748f52c5023b0a1ee441561df9826c17: [Backport #18562]nagachika
Fix TAG_THROW through require [Bug #18562] Previously this was being incorrectly swapped with TAG_RAISE in the next line. This would end up checking the T_IMEMO throw_data to the exception handling (which calls Module#===). This happened to not break existing tests because Module#=== returned false when klass is NULL. This commit handles throw from require correctly by jumping to the tag retaining the TAG_THROW state. --- load.c | 2 +- test/ruby/test_exception.rb | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-)
2022-03-13merge revision(s) b555e659c4974acc423083b71b1bd5ec6a926046: [Backport #18388]nagachika
Do not use `fcopyfile` if appending to non-empty file [Bug #18388] `fcopyfile` appends `src` to `to` and then truncates `to` to it's original size. --- io.c | 7 +++++++ test/ruby/test_io.rb | 12 ++++++++++++ 2 files changed, 19 insertions(+)
2022-03-13merge revision(s) ↵nagachika
7ff1bf317887c0d7b21e91ad548d07b9f05c540c,e89d80702bd98a8276243a7fcaa2a158b3bfb659: [Backport #18516] An alias can suppress method redefinition warning --- test/ruby/test_alias.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) Fix memory leak at the same named alias [Bug #18516] When aliasing a method to the same name method, set a separate bit flag on that method definition, instead of the reference count increment. Although this kind of alias has no actual effect at runtime, is used as the hack to suppress the method re-definition warning. --- method.h | 1 + test/ruby/test_alias.rb | 18 ++++++++++++++++++ vm_method.c | 9 ++++++++- 3 files changed, 27 insertions(+), 1 deletion(-)
2022-03-13merge revision(s) 6a6227e0168b059c3ed34c9f0ace2e5dc2364221: [Backport #18517]nagachika
Shifting zero always results in zero [Bug #18517] --- numeric.c | 2 ++ 1 file changed, 2 insertions(+)
2022-03-13merge revision(s) ↵nagachika
5c7af72304d0ad33cd3f21b24a4bc44e8acd5b2c,d650b17686d49c2ce8e6a87039861154e93d4621: [Backport #18497] Assuming EXIT_SUCCESS equals 0 is not portable --- test/ruby/test_fiber.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) `rb_fiber_terminate` must not return [Bug #18497] In a forked process from a fiber, the fiber becomes the only fiber, `fiber_switch` does nothing as there is no other fibers, `rb_fiber_terminate` does not terminate the fiber. In that case, reaches the end of `fiber_entry` finaly, which is declared as "COROUTINE" and should never return. --- cont.c | 3 ++- eval_intern.h | 2 +- test/fiber/test_process.rb | 15 +++++++++++++++ test/ruby/test_fiber.rb | 5 +++++ 4 files changed, 23 insertions(+), 2 deletions(-)
2022-03-13merge revision(s) ae5458f228a5477383e9c00425d85d50a3867817: [Backport #18475]nagachika
thread.c: Convert TAG_BREAK to a normal exception at thread top-level [Bug #18475] --- test/ruby/test_enum.rb | 11 +++++++++++ thread.c | 3 +++ 2 files changed, 14 insertions(+)
2022-03-12merge revision(s) 9e0a91d0640600f2dfd7fc1d5fae6667019c9ca5: [Backport #18458]nagachika
Don't segfault if Warning.warn is undefined Check that there is a method entry for the method before passing it to rb_method_entry_arity. Fixes [Bug #18458] --- error.c | 3 ++- test/ruby/test_exception.rb | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-)
2022-03-12merge revision(s) bcc2bb28b04054106f4a36e8fd69b2af6ecb033a: [Backport #18500]nagachika
Fix stack buffer overflow https://hackerone.com/reports/1306859 --- include/ruby/internal/memory.h | 6 +++--- random.c | 7 ++----- 2 files changed, 5 insertions(+), 8 deletions(-)
2022-03-12merge revision(s) fdf39963490cf2cf95b30d91bb9b35964c2c2350: [Backport #18421]nagachika
Empty and return the buffer if zero size is given [Bug #18421] In `IO#readpartial` and `IO#read_nonblock`, as well as `IO#read`. --- io.c | 8 ++++++-- test/ruby/test_io.rb | 21 +++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-)
2022-03-12merge revision(s) ↵nagachika
d6c5a30cfdf658280338dbb8c8b17fab3190b928,a2d4e1cda68a49980a4f9f353f400efbde7e7884: [Backport #18392] ObjectSpace::WeakMap#inspect: check if living object [Bug #18392] --- gc.c | 29 +++++++++++++++++++++++------ test/ruby/test_weakmap.rb | 9 +++++++++ 2 files changed, 32 insertions(+), 6 deletions(-) Fixed the check order in wmap_live_p [Bug #18392] Check if the object is a pointer to heap before check the flag in that object. --- gc.c | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-)
2022-03-12merge revision(s) 737e4432b978eb4b9f5b10fb6cc6d9c883a5d17a: [Backport #18409]nagachika
configure: add -Wl,--no-as-needed It is reported that combination of `--enable-shared --with-jemalloc` breaks on Debian bullseye (testig). Deeper investigation revealed that this system's `ld(1)` is patched, to turn `ld --as-needed` on by default. This linker flag strips "unnecessary" library dependencies from an executable. In case of `ruby(1)` (of `--enable-shared`), because everything is in `libruby.so`, the binary itself doesn't include any calls to `malloc(3)` at all. So in spite of our explicit `-ljemalloc` flag, it is ignored. Libc's one is chosen instead. This is not what we want. Let's force our `ruby(1)` link what we want. Fixes https://github.com/ruby/ruby/pull/4627 The author would like to acknowledge Akihiko Odaki <akihiko.odaki@gmail.com> for their contributions. --- configure.ac | 5 +++++ 1 file changed, 5 insertions(+)
2022-03-12merge revision(s) e2ec97c4b823a0b2e0c31e7a6d77b1dcdc0dfada: [Backport #18415]nagachika
[DOC] How to get the longest last match [Bug #18415] --- string.c | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-)
2022-03-12merge revision(s) ↵nagachika
0130e17a410d60a10e7041ce98748b8de6946971,32b7dcfb56a417c1d1c354102351fc1825d653bf,79cc566ab4cdf75f125ecf413a27d353a9756c08: [Backport #18394] Always enabled read barrier even on GC.compact Some objects can survive the GC before compaction, but get collected in the second compaction. This means we could have objects reference T_MOVED during "free" in the second, compacting GC. If that is the case, we need to invalidate those "moved" addresses. Invalidation is done via read barrier, so we need to make sure the read barrier is active even during `GC.compact`. This also means we don't actually need to do one GC before compaction, we can just do the compaction and GC in one step. --- gc.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) Fix more assumptions about the read barrier This is a continuation of 0130e17a410d60a10e7041ce98748b8de6946971. We need to always use the read barrier --- gc.c | 10 ---------- 1 file changed, 10 deletions(-) Make during_compacting flag in GC one bit Commit c32218de1ba094223420a4ea017707f48d0009c5 turned during_compacting flag to 2 bits to support the case when there is no write barrier. But commit 32b7dcfb56a417c1d1c354102351fc1825d653bf changed compaction to always enable the write barrier. This commit cleans up some of the leftover code. --- gc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
2022-03-12merge revision(s) ecb2ff60507a41c624f59cb9da6a008ab3ec36e1: [Backport #18403]nagachika
intern/select/posix.h: remove unused parameter from rb_fd_dup This unused parameter seems to be accidently introduced by https://github.com/ruby/ruby/commit/9e6e39c --- include/ruby/internal/intern/select/posix.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
2022-03-12merge revision(s) 9f0c6f20c58067923864575b60af730d191b8f6c: [Backport #18382]nagachika
[Bug #18382] Fix crash in compaction for ObjectSpace.trace_object_allocations ObjectSpace.trace_object_allocations can crash when auto-compaction is enabled. --- ext/objspace/object_tracing.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
2022-02-19merge revision(s) c51b92c18deb850d2cea3a7c9020db23b364ab72: [Backport #18358]nagachika
[ruby/zlib] [Bug #18358] Fix crash in zlib when in progress When Zlib::Inflate#inflate or Zlib::Deflate#deflate is called recursively inside the block, a crash can occur because of an use-after-free bug. https://github.com/ruby/zlib/commit/50fb8a0338 --- ext/zlib/zlib.c | 117 ++++++++++++++++++++++++++++++++----------------- test/zlib/test_zlib.rb | 10 ++++- 2 files changed, 85 insertions(+), 42 deletions(-)
2022-02-19merge revision(s) b3d62a77d928eff01268ca7fa1c1c0966702926d: [Backport #17803]nagachika
[ruby/zlib] Synchronize access to zstream to prevent segfault in multithreaded use I'm not sure whether this handles all multithreaded use cases, but this handles the example that crashes almost immediately and does 10,000,000 total deflates using 100 separate threads. To prevent the tests from taking forever, the committed test for this uses only 10,000 deflates across 10 separate threads, which still causes a segfault in the previous implementation almost immediately. Fixes [Bug #17803] https://github.com/ruby/zlib/commit/4b1023b3f2 --- ext/zlib/zlib.c | 33 ++++++++++++++++++++++++++- test/zlib/test_zlib.rb | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 1 deletion(-)
2022-02-19merge revision(s) ↵nagachika
cf831f49189c4a890da6845e39199a5dfaf4fb48,3260602fa3d905ba310b9afbc5365ee52cb53d62: zlib: fix Gzip{Writer,Reader}.new fails with a O_TMPFILE file --- ext/zlib/zlib.c | 18 ++++++++++++++---- test/zlib/test_zlib.rb | 21 +++++++++++++++++++++ 2 files changed, 35 insertions(+), 4 deletions(-) Adjusted indents [ci skip] --- ext/zlib/zlib.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
2022-02-19merge revision(s) fa7a712d460dc904f8a836bb22b54d457d95ba8e:nagachika
Fix -Wundef warnings for HAVE_RB_EXT_RACTOR_SAFE * See [Feature #17752] --- ext/cgi/escape/escape.c | 2 +- ext/monitor/monitor.c | 2 +- ext/racc/cparse/cparse.c | 2 +- ext/zlib/zlib.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-)
2022-02-19merge revision(s) 0c5f8c62766afe4605172800063e63fe36996658: [Backport #10961]nagachika
[ruby/zlib] Resume zstream if available [Bug #10961] --- ext/zlib/zlib.c | 6 ++++++ 1 file changed, 6 insertions(+)
2022-02-13skip some test using openssl to cease failure on GitHub Actions for MinGW.nagachika
2022-02-13skip some tests of rdoc temporary.nagachika
2022-02-13merge revision(s) ↵nagachika
f18a0b7654d471101b207e7fe553e12a25398e45,77e1b477297a48e285d34b21e8d30ab4b46bf90c,c483aa8394fc26e341666db66938b1d6fc2cbb8e,f2e39e5fed498b51ae914ed42ec51ae578330583,6aaa1c4d09249baae93d5bb7fba585be420c4fee,923b3652247aa17ac99dc45cb1cd0654fa08d976,950c7a12efa19d73bed10d377368a50664cae32c,69ce9e4187589335124077029496ee293d4e9189,ddb87396349fa4699153d5c4c7569c2e0186adfc,09e7a0c4a4fba18e3308e4f8cb4b8b5b52b41d20,298d65b1e4f3019af7fc9b905390b56736f5fd0e,2f3edf28f3a251bac2cf3b47b46b372faac71e8e: [ruby/rdoc] Follow-up rubygems Use test-unit assertions instead of minitest. https://github.com/ruby/rdoc/commit/d6a6209d7f --- test/rdoc/test_rdoc_rubygems_hook.rb | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) [ruby/rdoc] Add an alias for test-unit with older versions of RubyGems https://github.com/ruby/rdoc/commit/b8d68fdd87 --- test/rdoc/test_rdoc_rubygems_hook.rb | 3 +++ 1 file changed, 3 insertions(+) [ruby/rdoc] Rwrite test-case for rubygems_hook without Gem::TestCase https://github.com/ruby/rdoc/commit/f8d1087ce5 --- test/rdoc/test_rdoc_rubygems_hook.rb | 38 +++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 18 deletions(-) [ruby/rdoc] Update test/rdoc/test_rdoc_rubygems_hook.rb https://github.com/ruby/rdoc/commit/fb264c4cc4 Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> --- test/rdoc/test_rdoc_rubygems_hook.rb | 4 ++++ 1 file changed, 4 insertions(+) [ruby/rdoc] Use pend instead of skip https://github.com/ruby/rdoc/commit/8460a36d84 --- test/rdoc/test_rdoc_rubygems_hook.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) Close UserInteraction for tests to fix leaked file descriptors --- test/rdoc/test_rdoc_rubygems_hook.rb | 2 ++ 1 file changed, 2 insertions(+) Make temporary directory under the regular location --- test/rdoc/test_rdoc_rubygems_hook.rb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) Clear default configurations Remove environment variables which can affect the default configurations. --- test/rdoc/test_rdoc_rubygems_hook.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) Clear rdoc options in the global rubygems configuration --- test/rdoc/test_rdoc_rubygems_hook.rb | 2 ++ 1 file changed, 2 insertions(+) Dispose the global rubygems configuration wholely --- test/rdoc/test_rdoc_rubygems_hook.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Discard RDOCOPT environment variable to make tests stable --- test/rdoc/test_rdoc_rubygems_hook.rb | 1 + 1 file changed, 1 insertion(+) [ruby/rdoc] Prefer omit to pend These conditions are not temporary, rather platform dependent. https://github.com/ruby/rdoc/pull/815#discussion_r654660411 https://github.com/ruby/rdoc/commit/92545fa250 --- test/rdoc/test_rdoc_rubygems_hook.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
2022-02-13Revert 207fb8e6d82c5018c958243de8bfaac3fa5ddfb3 partially.nagachika
Bacause the GitHub Actions workflow for MinGW failed on 'where check'
2022-02-13merge revision(s) 49cc7709cb762594aa8ea1b98a1fdf41662a5cf6:nagachika
[Actions] mingw - use ruby/setup-ruby@v1 again --- .github/workflows/mingw.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
2022-02-13merge revision(s) bab862334313c08ec4f218cb1de1774c9909e3be:nagachika
The `include`d set should be expanded values [ci skip] While the `matrix` level values are expanded from the production of each arrays, `include`d set should be consist from expanded single values. --- .github/workflows/mingw.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
2022-02-13merge revision(s) 63358581bca80c7a885228ac841b0ae9c4ca11b5:nagachika
Fix weird MinGW failure notifications It's been "MinGW / Array", but it will be "MinGW MINGW64 / check" or "MinGW UCRT64 / check" by this. --- .github/workflows/mingw.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
2022-02-13merge revision(s) ↵nagachika
e0a5c3d2b71dfad038d7562fdd33f02ffd79232d,7d55f1b6b6b9777a8bd665f6c5ed6a64c7fa2e9b: [MinGW] Set job names --- .github/workflows/mingw.yml | 1 + 1 file changed, 1 insertion(+) [Actions] use windows-2022 for mingw MSP-Greg/ruby-setup-ruby@win-ucrt-1 --- .github/workflows/mingw.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-)
2022-02-13merge revision(s) ↵nagachika
ec032e86faf9ac128ac51e3394d9b4001a374b38,8acb2a9b4069f55f71a80c747fc7c6bcb686abb7: [MinGW] Clear prefix and move the directory to DESTDIR Also the destination will be created at the installation. --- .github/workflows/mingw.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) [MinGW] Use autogen --- .github/workflows/mingw.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
2022-02-12Fix bundler test failures.nagachika
These failures are caused by the incompatibility in keyword argument treatment in rspec-mocks. I fix the expectations in the bundler/rubygems_integration_spec.rb. These tests are not touched in the master branch. It seems that the following patch also fix the failures. But I believe the expectations in these tests are wrong. We should pass a Hash literal explicitly. --- a/common.mk +++ b/common.mk @@ -1365,7 +1365,7 @@ yes-test-bundler-precheck: main no-test-bundler-prepare: no-test-bundler-precheck yes-test-bundler-prepare: yes-test-bundler-precheck $(XRUBY) -C "$(srcdir)" bin/gem install --no-document \ - --install-dir .bundle --conservative "rspec:~> 3.8" "rake:~> 13.0" "parallel_tests:~> 2.29" + --install-dir .bundle --conservative "rspec-core:= 3.10.1" "rspec-expectations:= 3.10.1" "rspec-mocks:= 3.10.2" "rake:~> 13.0" "parallel_tests:~> 2.29" RSPECOPTS = BUNDLER_SPECS =
2022-02-12merge revision(s) 342e7a094a70d6f90b96262c88177dae32976c85:nagachika
[rubygems/rubygems] Fix spec to not touch the network And not depend on the state of rack's master branch, in particular, on their Ruby support range. https://github.com/rubygems/rubygems/commit/9ea4baffac --- spec/bundler/commands/remove_spec.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
2021-12-24merge revision(s) ↵nagachika
fb4cf204a662a8cd9dafef6f31f2bd0db9129abe,fa0279d947c3962c3f8c32852278d3ebb964cb19: [Backport #17725] use me->def instead of me for opt_table `vm_opt_method_table` is me=>bop table to manage the optimized methods (by specialized instruction). However, `me` can be invalidated to invalidate the method cache entry. [Bug #17725] To solve the issue, use `me-def` instead of `me` which simply copied at invalidation timing. A test by @jeremyevans https://github.com/ruby/ruby/pull/4376 --- test/ruby/test_method.rb | 15 +++++++++++++++ vm.c | 11 +++++------ 2 files changed, 20 insertions(+), 6 deletions(-) should not share same `def` for specialized method Because the key of redefine table is `def`, `def` should be unique for each optimized method (`alias` is not allowed). --- array.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
2021-12-24merge revision(s) ↵nagachika
5086c25f6015558877f85c3f1c014780b08fd3ce,3ff0a0b40c2e1fbdad2286f1dafe837f822d0e0d: [Backport #16936] Properly exclude test cases. Lets consider the following scenario: ~~~ irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):001:0> p suite OpenSSL::TestEC => OpenSSL::TestEC irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):002:0> p all_test_methods ["test_ECPrivateKey", "test_ECPrivateKey_encrypted", "test_PUBKEY", "test_check_key", "test_derive_key", "test_dh_compute_key", "test_dsa_sign_asn1_FIPS186_3", "test_ec_group", "test_ec_key", "test_ec_point", "test_ec_point_add", "test_ec_point_mul", "test_generate", "test_marshal", "test_sign_verify", "test_sign_verify_raw"] => ["test_ECPrivateKey", "test_ECPrivateKey_encrypted", "test_PUBKEY", "test_check_key", "test_derive_key", "test_dh_compute_key", "test_dsa_sign_asn1_FIPS186_3", "test_ec_group", "test_ec_key", "test_ec_point", "test_ec_point_add", "test_ec_point_mul", "test_generate", "test_marshal", "test_sign_verify", "test_sign_verify_raw"] irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):003:0> p filter /\A(?=.*)(?!.*(?-mix:(?-mix:memory_leak)|(?-mix:OpenSSL::TestEC.test_check_key)))/ => /\A(?=.*)(?!.*(?-mix:(?-mix:memory_leak)|(?-mix:OpenSSL::TestEC.test_check_key)))/ irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):004:0> method = "test_check_key" => "test_check_key" ~~~ The intention here is to exclude the `test_check_key` test case. Unfortunately this does not work as expected, because the negative filter is never checked: ~~~ irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):005:0> filter === method => true irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):006:0> filter === "#{suite}##{method}" => false irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):007:0> filter === method || filter === "#{suite}##{method}" => true ~~~ Therefore always filter against the fully qualified method name `#{suite}##{method}`, which should provide the expected result. However, if plain string filter is used, keep checking also only the method name. This resolves [Bug #16936]. --- tool/lib/test/unit.rb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) Filter method names only if filtering method name only If sole `filter` option doesn't seem including test case name, match with method name only. And if the filter is a Regexp or String, it never matches method name symbols. --- tool/lib/test/unit.rb | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-)
2021-12-24merge revision(s) c6706f15af123bdbb3b39a21903d85c78462d047: [Backport #18241]nagachika
Fix documentation for String#{<<,concat,prepend} These methods mutate and return the receiver, they don't create and return a new string. Fixes [Bug #18241] --- string.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-)
2021-12-24merge revision(s) 7f4e86804d426d79807cc038fe4444f7c65f5c4a: [Backport #18163]nagachika
Fix documentation of #<=> and #casecmp [ci skip] Descriptions for return values of -1 and 1 were reversed. --- string.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)