diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2024-06-06 20:02:12 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2024-06-06 20:43:56 +0900 |
commit | 27321290d954300192c82cdf5e2c794a695473f5 (patch) | |
tree | ff8344d973179f363accb4f4e5021d03ea3c2051 /test | |
parent | f465045dd6ef1a51cf181f9e4c038b905f79bd2c (diff) | |
download | ruby-27321290d954300192c82cdf5e2c794a695473f5.tar.gz |
[Bug #20521] ripper: Clean up strterm
Diffstat (limited to 'test')
-rw-r--r-- | test/ripper/test_lexer.rb | 27 |
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 |