| Age | Commit message (Collapse) | Author |
|
Retrying after rescued `require` should try to load the same
library again. [Bug #16607]
Notes:
Merged: https://github.com/ruby/ruby/pull/2879
|
|
|
|
These tests assume
Encoding.find('locale') == Encoding.find('external')
and fail if they are distinct.
|
|
Co-authored-by: Yusuke Endoh <mame@ruby-lang.org>
Notes:
Merged: https://github.com/ruby/ruby/pull/2874
|
|
This environment variable can show additional message on BUG.
|
|
should not mutate test data.
|
|
should remove pathname.
|
|
This reverts commit 4d132fa130e16eeb4af4177cfaccc00e05e2f864.
There are discussions about using srand() in tests.
I'll write a ticket about it and continue to discuss.
|
|
This reverts commit 65768c80beb64a14c3e918f8ed5e41e9349025d0.
|
|
Dir.tmpdir can return same directory because of rand() value,
so we shouldn't rely on different name.
|
|
|
|
[Bug #15177]
|
|
|
|
test_rand.rb calls srand() several times, however it change global
rand-sequence (and --seeds doesn't have meaning). This patch makes
such tests run in other processes.
Notes:
Merged: https://github.com/ruby/ruby/pull/2865
|
|
|
|
ruby/test_time_tz.rb (not sure only this file affects) changes TZ
and it seems to change internal state. This internal state change
fails test_2038 and test_timegm on 2nd time execution.
At this time I have no idea how to fix this issue, so I skips these
tests on 2nd trial.
You can try this failure with the following command without this patch.
$ make test-all TESTS='--repeat-count=2 ruby/require ruby/time ruby/time_tz'
|
|
Another test defines Object::A, but it will fail 2nd test.
|
|
Remove Structs to avoid redefinition warnings.
|
|
need to remove Constants.
|
|
need to redefine some classes.
|
|
Give up to support multi-run:
* test_method_should_use_refinements
* test_instance_method_should_use_refinements
I hope someone can revisit it.
|
|
Mysterious error:
`remove_method(:foo) if method_defined?(:foo)` raise an exception
`method `foo' not defined in #<Class:#<TestProc:0x000055d12ff154e0>>`
This patch rename the method name foo to foo_arity to solve it.
|
|
add cleanup code in some tests.
|
|
need to restore a method.
|
|
need to remove Constants.
|
|
need to remove a Constant.
|
|
need to remove a Constant.
|
|
Unique encoding name is required.
|
|
need to redef Constants.
|
|
cvar should be initialized at first.
|
|
It requires more cleanup.
|
|
test-all supports multiple run with option --repeat-count=2
but test_equal_resize doesn't support it.
|
|
|
|
And fixed a segfault by coercion of `Qundef`, when any keyword
argument without `toward:` option is given.
|
|
https://hackerone.com/reports/244787
|
|
https://hackerone.com/reports/244786
|
|
With the removal of the splatted argument when using an empty
keyword splat, the autosplat code considered an empty keyword
splat the same as no argument at all. However, that results
in autosplat behavior changing dependent on the content of
the splatted hash, which is not what anyone would expect or
want. This change always skips an autosplat if keywords were
provided.
Fixes [Bug #16560]
Notes:
Merged: https://github.com/ruby/ruby/pull/2861
|
|
Musl libc has this function as a tiny wrapper of fchmodat(3posix). On
the other hand Linux kernel does not support changing modes of a symlink.
The operation always fails with EOPNOTSUPP. This fchmodat behaviour is
defined in POSIX. We have to take care of such exceptions.
|
|
Musl is (of course) not glibc. Its confstr(3) does not understand
_CS_GNU_LIBC_VERSION. That's fair. Problem is, its unistd.h has that
constant defined for unknown reason. We cannot blindly say the libc is
glibc by looking at it. Instead we have to kick it, then see if it
quacks like a duck.
See https://git.musl-libc.org/cgit/musl/tree/include/unistd.h
|
|
Keeping empty keyword splats for ruby2_keywords methods was
necessary in 2.7 to prevent the final positional hash being
treated as keywords. Now that keyword argument separation
has been committed, the final positional hash is never
treated as keywords, so there is no need to keep empty
keyword splats when using ruby2_keywords.
Notes:
Merged: https://github.com/ruby/ruby/pull/2857
|
|
Sort the results which matched single wildcard or character set in
binary ascending order, unless `sort: false` is given. The order
of an Array of pattern strings and braces are not affected.
Notes:
Merged: https://github.com/ruby/ruby/pull/2846
|
|
In #2818, `Hash.ruby2_keywords!` has renamed to `Hash.ruby2_keywords_hash`.
Notes:
Merged: https://github.com/ruby/ruby/pull/2849
|
|
|
|
It was found that a feature to check and add ruby2_keywords flag to an
existing Hash is needed when arguments are serialized and deserialized.
It is possible to do the same without explicit APIs, but it would be
good to provide them as a core feature.
https://github.com/rails/rails/pull/38105#discussion_r361863767
Hash.ruby2_keywords_hash?(hash) checks if hash is flagged or not.
Hash.ruby2_keywords_hash(hash) returns a duplicated hash that has a
ruby2_keywords flag,
[Bug #16486]
Notes:
Merged: https://github.com/ruby/ruby/pull/2818
|
|
It is useful for a program that dumps and load arguments (like drb).
In future, they should deal with both positional arguments and keyword
ones explicitly, but until ruby2_keywords is deprecated, it is good to
support the flag in marshal.
The implementation is similar to String's encoding; it is dumped as a
hidden instance variable.
[Feature #16501]
Notes:
Merged: https://github.com/ruby/ruby/pull/2830
|
|
|
|
[Feature #16432]
|
|
|
|
Split with the matched part when the separator matches the empty
part at the beginning. [Bug #11014]
|
|
`String#sub` with a string pattern defers creating a `Regexp`
until `MatchData#regexp` creates a `Regexp` from the matched
string. `Regexp#last_match(group_name)` accessed its content
without creating the `Regexp` though. [Bug #16508]
|