summaryrefslogtreecommitdiff
path: root/test/ruby
AgeCommit message (Collapse)Author
2019-08-01Compact ensure clause and rename variables to fix alignmentKazuhiro NISHIYAMA
2019-08-01check hash_hint is different.Koichi Sasada
2019-07-31test/ruby/test_hash.rb: remove a unused vribleYusuke Endoh
to suppress a warning
2019-07-31check SystemStackErrorKoichi Sasada
This recursive iteration test can cause SystemStackError so check it correctly.
2019-07-31test/ruby/test_float.rb: suppress an overflow warningYusuke Endoh
``` warning: Float 0xf.fp10000000000000... out of range ```
2019-07-31test/ruby/test_io.rb (test_binmode_pipe): close all pipes explicitlyYusuke Endoh
to suppress the leak checker.
2019-07-31test/ruby/test_file_exhaustive.rb: suppress method-redefined warningYusuke Endoh
2019-07-31remove RHash::iter_lev.Koichi Sasada
iter_lev is used to detect the hash is iterating or not. Usually, iter_lev should be very small number (1 or 2) so `int` is overkill. This patch introduce iter_lev in flags (7 bits, FL13 to FL19) and if iter_lev exceeds this range, save it in hidden attribute. We can get 1 word in RHash. We can't modify frozen objects. Therefore I added new internal API `rb_ivar_set_internal()` which allows us to set an attribute even if the target object is frozen if the name is hidden ivar (the name without `@` prefix).
2019-07-30Do not change IO.pipe encodings if encodings explicitly givenJeremy Evans
This commit makes it so that if the binmode option is given with any encoding arguments, the reader and writer IO objects are not set to binary encoding. Fixes [Bug #12989]
2019-07-30Passing `binmode: true` to `IO.pipe` should behave like `binmode`Aaron Patterson
When passing `binmode: true` to `IO.pipe`, it should behave the same way as calling `binmode` on each of the file handles. It should set the file to binmode *and* set the encoding to binary on the file. Before this commit, passing `binmode: true` to `IO.pipe` would make `binmode?` return `true`, but the file's encoding would remain the same as the default encoding. Passing `binmode: true` should make `binmode?` return `true` *and* set the encoding to binary.
2019-07-30Do not always taint the result of File#pathJeremy Evans
The result should only be tainted if the path given to the method was tainted. The code to always taint the result was added in a4934a42cbb84b6679912226581c71b435671f55 (svn revision 4892) in 2003 by matz. However, the change wasn't mentioned in the commit message, and it may have been committed by accident. Skip part of a readline test that uses Reline. Reline in general would pass the test, but Reline's test mode doesn't raise a SecurityError if passing a tainted prompt and $SAFE >= 1. This was hidden earlier because File#path was always returning a tainted string. Fixes [Bug #14485]
2019-07-30Separate test_set_lineno_getsNobuyoshi Nakada
2019-07-29Revert "Do not always taint the result of File#path"Jeremy Evans
This reverts commit 1a759bfe5d554c22571d2e6e4e5998cf06a7b98f. This fails on some operating systems.
2019-07-29Do not always taint the result of File#pathJeremy Evans
The result should only be tainted if the path given to the method was tainted. The code to always taint the result was added in a4934a42cbb84b6679912226581c71b435671f55 (svn revision 4892) in 2003 by matz. However, the change wasn't mentioned in the commit message, and it may have been committed by accident. Skip part of a readline test that uses Reline. Reline in general would pass the test, but Reline's test mode doesn't raise a SecurityError if passing a tainted prompt and $SAFE >= 1. This was hidden earlier because File#path was always returning a tainted string. Fixes [Bug #14485]
2019-07-29Warn if using return at top-level with an argumentJeremy Evans
Fixes [Bug #14062]
2019-07-29Removed unused variables and methodsNobuyoshi Nakada
2019-07-27Occupy match dataNobuyoshi Nakada
* string.c (rb_str_split_m): occupy match data not to be modified during yielding the block. [Bug #16024]
2019-07-27Initialize DST flagNobuyoshi Nakada
* time.c (zone_timelocal): initialize DST flag by asking the timezone object. [Bug #15988]
2019-07-25Fix errno at seeking socket/pipe on WindowsNobuyoshi Nakada
[Bug #12230]
2019-07-24should not free local hook_list here.Koichi Sasada
exec_hooks_postcheck() clean executed hook_list if it is needed. list_exec is freed if there are no events and this list is local event (connected to specific iseq). However, iseq keeps to point this local hook_list, freed list. To prevent this situation, do not free hook_list here even if it has no events. This issue is reported by @joker1007. https://twitter.com/joker1007/status/1153649170797830144
2019-07-23Make Object#singleton_methods work correctly for singleton classes of objectsJeremy Evans
Fixes [Bug #10901]
2019-07-15Removed duplicate highlightingNobuyoshi Nakada
2019-07-15add tests for orphan/not-orphan proc/lambda.Tanaka Akira
2019-07-15add tests for "break" in lambda.Tanaka Akira
2019-07-14Check the result of String#-@Nobuyoshi Nakada
2019-07-14MJIT Support for getblockparamproxyTakashi Kokubun
2019-07-14Method#inspect with source location.Koichi Sasada
Method#inspect shows with source location. [Feature #14145]
2019-07-14add encoding conversion from/to CESU-8Martin Dürst
Add encoding conversion (transcoding) from UTF-8 to CESU-8 and back. CESU-8 is an encoding similar to UTF-8, but encodes codepoints above U+FFFF as two surrogates, these surrogates again being encoded as if they were UTF-8 codepoints. This preserves the same binary sorting order as in UTF-16. It is also somewhat similar (although not exactly identical) to an encoding used internally by Java. This completes issue #15995. enc/trans/cesu_8.trans: Add encoding conversion from/to CESU-8 test/ruby/test_transcode.rb: Add tests for above
2019-07-13Relaxed delta of nanosec from Float timeNobuyoshi Nakada
2019-07-12Fixed duplicate test nameNobuyoshi Nakada
2019-07-11Check exception flag as a bool [Bug #15987]Nobuyoshi Nakada
2019-07-11Revert "parse.y: Deprecate flip-flops"Nobuyoshi Nakada
This reverts commit bae638ad5b782c44c80efe33834cb9039279af46. [Feature #5400]
2019-07-11$LOAD_PATH.resolve_feature_pathNobuyoshi Nakada
Moved from RubyVM. [Feature #15903]
2019-07-09Restore support library for only test files.Hiroshi SHIBATA
2019-07-08Check indent of `end` against `else` if presentNobuyoshi Nakada
2019-07-07Message to pipe should end with a newlineNobuyoshi Nakada
2019-07-07Enable indentation warning against `if` just after `else`Nobuyoshi Nakada
```ruby if false puts 'false' else if true puts 'true' end # -:5: warning: mismatched indentations at 'end' with 'if' at 3 end ``` [Feature #15990]
2019-07-05Fix segfault when using method reference operator without using resultJeremy Evans
Fixes [Bug #15985]
2019-07-05Multiple codepoints are not allowed at single character literalNobuyoshi Nakada
It has unintentionally passed since 2.5.
2019-07-04Revert self-referencing finalizer warning [Feature #15974]Nobuyoshi Nakada
It has caused CI failures. * d0cd0866d82a58933e5dccd073c753c0c2ad4eb5 Disable GC during rb_objspace_reachable_object_p * 89cef1c56b3a0f9c5e6ccc22a5044477a4fd16c1 Version guard for [Feature #15974] * 796eeb6339952d92ae1b353d450c7883e589852d. Fix up [Feature #15974] * 928260c2a613bbdd4402c300e0bf86ae7562e52a. Warn in verbose mode on defining a finalizer that captures the object
2019-07-03Just disable inlining with local varaible for nowTakashi Kokubun
This partially reverts commit 712a66b0741605f5b2db670a292b9bb352f8a716. The previous fix made CI strange like: http://ci.rvm.jp/results/trunk-vm-asserts@silicon-docker/2124178 Let me just downgrade the behavior for now and deal with it later. [Bug #15971]
2019-07-03Fix up [Feature #15974]Nobuyoshi Nakada
* Fixed warning condition * Fixed function signature * Use ident hash
2019-07-03Revert "Avoid corrupting VM stack on inlined setlocal"Koichi Sasada
This reverts commit ea30dd702512ff9df34fe8c71c825f8f901bf5b1. because it fails when VM_CHECK_MODE=1.
2019-07-02Check that String#scrub block does not modify receiverJeremy Evans
Similar to the check used for String#gsub. Can fix possible segfault. Fixes [Bug #15941]
2019-07-02Make String#-@ not freeze receiver if called on unfrozen subclass instanceJeremy Evans
rb_fstring behavior in this case is to freeze the receiver. I'm not sure if that should be changed, so this takes the conservative approach of duping the receiver in String#-@ before passing to rb_fstring. Fixes [Bug #15926]
2019-07-02Implement Array#minmaxJeremy Evans
Array#minmax was previous not implemented, so calling #minmax on array was actually calling Enumerable#minmax. This is a simple implementation of #minmax by just calling rb_ary_min and rb_ary_max, which improves performance significantly. Fixes [Bug #15929]
2019-07-02Avoid corrupting VM stack on inlined setlocalTakashi Kokubun
setlocal relies on cfp->ep, and frame-omitted method inlining introduced in Ruby 2.7 kept it wrong. This change might slow down frame-omitted method inlining for cfp->ep manipulation, and it obviously complicates the implementaion more. By introducing an optimization that changes Ruby's local variable to C local variable, we could optimize it and simplify the cfp->ep manipulation later. [Bug #15971]
2019-07-02The behavior of statx(2) depends on the filesystemNobuyoshi Nakada
birthtime may not be supported on some filesystems, and NotImplementedError can be raised. [Bug #15972]
2019-07-02Adjust jit_support file path.Hiroshi SHIBATA
2019-07-02Renamed to get rid of name clashNobuyoshi Nakada