aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2024-06-06 20:02:12 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2024-06-06 20:43:56 +0900
commit27321290d954300192c82cdf5e2c794a695473f5 (patch)
treeff8344d973179f363accb4f4e5021d03ea3c2051 /test
parentf465045dd6ef1a51cf181f9e4c038b905f79bd2c (diff)
downloadruby-27321290d954300192c82cdf5e2c794a695473f5.tar.gz
[Bug #20521] ripper: Clean up strterm
Diffstat (limited to 'test')
-rw-r--r--test/ripper/test_lexer.rb27
1 files changed, 20 insertions, 7 deletions
diff --git a/test/ripper/test_lexer.rb b/test/ripper/test_lexer.rb
index 392c4e9cba..64b4336375 100644
--- a/test/ripper/test_lexer.rb
+++ b/test/ripper/test_lexer.rb
@@ -253,18 +253,31 @@ world"
assert_equal(code, Ripper.tokenize(code).join(""), bug)
end
+ InvalidHeredocInsideBlockParam = <<~CODE
+ a do |b
+ <<-C
+ C
+ |
+ end
+ CODE
+
def test_heredoc_inside_block_param
bug = '[Bug #19399]'
- code = <<~CODE
- a do |b
- <<-C
- C
- |
- end
- CODE
+ code = InvalidHeredocInsideBlockParam
assert_equal(code, Ripper.tokenize(code).join(""), bug)
end
+ def test_heredoc_no_memory_leak
+ assert_no_memory_leak([], "#{<<-"begin;"}", "#{<<-'end;'}", rss: true)
+ require "ripper"
+ source = "" #{InvalidHeredocInsideBlockParam.dump}
+ begin;
+ 400_000.times do
+ Ripper.new(source).parse
+ end
+ end;
+ end
+
def test_heredoc_unterminated_interpolation
code = <<~'HEREDOC'
<<A+1