summaryrefslogtreecommitdiff
path: root/test/ruby
AgeCommit message (Collapse)Author
2019-06-21Lazy filter_mapNobuyoshi Nakada
2019-06-19Implement Complex#<=>Jeremy Evans
Implement Complex#<=> so that it is usable as an argument when calling <=> on objects of other classes (since #coerce will coerce such numbers to Complex). If the complex number has a zero imaginary part, and the other argument is a real number (or complex number with zero imaginary part), return -1, 0, or 1. Otherwise, return nil, indicating the objects are not comparable. Fixes [Bug #15857]
2019-06-19Marshal distant past/futureNobuyoshi Nakada
[Feature #15160]
2019-06-19New buffer for shared stringNobuyoshi Nakada
* string.c (rb_str_init): allocate new buffer if the string is shared. [Bug #15937]
2019-06-19Preserve the string content at self-copyingNobuyoshi Nakada
* string.c (rb_str_init): preserve the embedded content when self-copying with a capacity. [Bug #15937]
2019-06-18String#b: Don't depend on dependent stringAlan Wu
Registering a string that depend on a dependent string as fstring can lead to use-after-free. See c06ddfe and 3f95620 for details. The following script triggers use-after-free on trunk, 2.4.6, 2.5.5 and 2.6.3. Credits to @wanabe for using eval as a cross-version way of registering a fstring. ```ruby a = ('j' * 24).b.b eval('', binding, a) p a 4.times { GC.start } p a ``` - string.c (str_replace_shared_without_enc): when given a dependent string, depend on the root of the dependent string. [Bug #15934]
2019-06-17Fix wrong "void value expression" errorNobuyoshi Nakada
* parse.y (value_expr_check): `then` or `else` only `if` is not a void value expression, as the counterpart is evaluated as `nil`. [Bug #15932]
2019-06-17Fix wrong "void value expression" errorNobuyoshi Nakada
* parse.y (value_expr_check): if either of `then` or `else` statements is not a void value expression, the whole `if` is not also a void value expression. [Bug #15932]
2019-06-16Revert "Make constant assignments more conforming to JIS X 3017:2013 11.4.2.2.3"Yusuke Endoh
This reverts commit 44caca11cfa6bea01a1ef738846183f1a56d5658. The change caused a build failure. http://ci.rvm.jp/results/trunk-vm-asserts@silicon-docker/2102153
2019-06-16Make constant assignments more conforming to JIS X 3017:2013 11.4.2.2.3Yuki Yugui Sonoda
compile.c (NODE_CDECL): Evaluate the module before the value test/ruby/test_const.rb (test_evaluation_order): added a test case
2019-06-15Revert github/pull/2230, commit missNobuyoshi Nakada
2019-06-15Test for blank lines between leadinig dot method chainsJosh Cheek
2019-06-15Multiline method chain with leading dot works for blank linesJosh Cheek
2019-06-15Test comments between multiline method chainJosh Cheek
2019-06-14An operator is not allowed just after `|>`Nobuyoshi Nakada
https://twitter.com/yukihiro_matz/status/1139454774640726019
2019-06-13Continue to the next line beginning with a pipelineNobuyoshi Nakada
2019-06-13parse.y: moved pipeline to exprNobuyoshi Nakada
To allow arguments without parentheses.
2019-06-13Add pipeline operator [Feature #15799]Nobuyoshi Nakada
2019-06-13IO#set_encoding_by_bomNobuyoshi Nakada
* io.c (rb_io_set_encoding_by_bom): IO#set_encoding_by_bom to set the encoding by BOM if exists. [Bug #15210]
2019-06-11Fix SystemStackError when calling a method in an unused refinementJeremy Evans
Fixes [Bug #15720]
2019-06-11assert_cpu_usage_low with timeout scaleNobuyoshi Nakada
* test/lib/test/unit/assertions.rb (assert_cpu_usage_low): apply the timeout scale to measuring period. this assertion is very runtime environment dependent.
2019-06-11Refined syntax error messagesNobuyoshi Nakada
2019-06-11&. is not allowed inside LHS of massignNobuyoshi Nakada
https://hackerone.com/reports/605262
2019-06-09Split test_strip_bom for each encodingNobuyoshi Nakada
2019-06-09Add tests of the encoding with BOMNobuyoshi Nakada
2019-06-07compile.c: Partially revert r63870 which caused wrong optimizationYusuke Endoh
[Bug #15906]
2019-06-05error.c: avoid infinite recursion at inspecting the frozen objectNobuyoshi Nakada
2019-06-05Test for f1f04caf60e4fc9dc3b12109e0be831f2d692810Nobuyoshi Nakada
2019-06-04Include inspect value of object in FrozenError messagesJeremy Evans
FrozenError#receiver was added recently for getting the related object programmatically. However, there are cases where FrozenError is raised and not handled, and in those cases the resulting error messages lack detail, which makes debugging the error more difficult, especially in cases where the error is not easily reproducible. This includes the inspect value of the frozen object in FrozenError messages, which should make debugging simpler.
2019-06-03Fix the error token on "invalid hex escape"Nobuyoshi Nakada
* parse.y (tok_hex): flush token after dispatching the "invalid hex escape" parse error.
2019-06-02Make size on an infinite each_slice enumerator return InfinityJeremy Evans
Fixes [Bug #15889]
2019-06-01Update String#crypt tests to work on OpenBSDJeremy Evans
Skip the webrick httpauth tests that use crypt when testing on OpenBSD. Fixes [Bug #11363]
2019-06-01Ignore warnings about mismatched indentations.Hiroshi SHIBATA
2019-06-01Ignore warnings about argument prefix with operator symbol.Hiroshi SHIBATA
2019-06-01Ignore warnings about ambiguous first argument of regexp with assert match.Hiroshi SHIBATA
2019-06-01Fix FrozenError when assigning frozen class to constantNobuyoshi Nakada
* variable.c (set_namespace_path): modules/classes can get named by assignment to constant, even if frozen. [Bug #15891]
2019-05-31Keep vm->orig_progname aliveAlan Wu
`vm->orig_progname` can be different from `vm->progname` when user code assigns to `$0`. While `vm->progname` is kept alive by the global table, nothing marked `vm->orig_progname`. [Bug #15887]
2019-05-30parse.y: continue after heredoc errorNobuyoshi Nakada
* parse.y: continue parsing the rest of the here-document starting line, after the terminator was not found.
2019-05-29parse.y: warn escaped whitespaceNobuyoshi Nakada
* parse.y (warn_space_char_code): warn whitespace characters escaped with meta/control prefix.
2019-05-28parse.y: numbered parameter symbolNobuyoshi Nakada
* parse.y (parse_atmark): numbered parameter name is not allowed as a symbol regardless the context.
2019-05-26Add FrozenError#receiverJeremy Evans
Similar to NameError#receiver, this returns the object on which the modification was attempted. This is useful as it can pinpoint exactly what is frozen. In many cases when a FrozenError is raised, you cannot determine from the context which object is frozen that you attempted to modify. Users of the current rb_error_frozen C function will have to switch to using rb_error_frozen_object or the new rb_frozen_error_raise in order to set the receiver of the FrozenError. To allow the receiver to be set from Ruby, support an optional second argument to FrozenError#initialize. Implements [Feature #15751]
2019-05-27parse.y: broke the terminator condition downNobuyoshi Nakada
* parse.y (here_document): broke the terminator condition down into each piece, the positional condition, resetting the dedented here-document indentation, and matching identifier. suppress a false warning by icc.
2019-05-26parse.y: adjust error indicatorNobuyoshi Nakada
* parse.y (parser_yylex): adjust the error indicator of unexpected fraction part. before: ~~~ 1.2.3 ^~~ ~~~ after: ~~~ 1.2.3 ^~ ~~~
2019-05-26test/ruby/test_notimp.rb: Use EnvUtil.timeout for timeout scale factorNobuyoshi Nakada
2019-05-26test/ruby/test_process.rb: Use EnvUtil.timeout for timeout scale factorYusuke Endoh
https://rubyci.org/logs/rubyci.s3.amazonaws.com/solaris11s-sunc/ruby-master/log/20190526T052508Z.fail.html.gz
2019-05-26test/lib/envutil.rb (EnvUtil.timeout): added.Yusuke Endoh
It is a wrapper for Timeout.timeout with the scale factor applied.
2019-05-26Fix scanner event at invalid syntaxNobuyoshi Nakada
* parse.y (parser_yyerror, parser_compile_error): revert r67224 (e5d10cda07b23682e5e4e64d1324e4d3247d4785) "Flush erred token".
2019-05-26test/ruby/test_rubyoptions.rb (test_script_from_stdin): scale timeoutYusuke Endoh
for Solaris. https://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable10s/ruby-master/log/20190525T131909Z.fail.html.gz
2019-05-25Avoid to show warning message with unused variable.Hiroshi SHIBATA
2019-05-24Mixed encoding error can continue to parseNobuyoshi Nakada