diff options
| author | Peter Zhu <peter@peterzhu.ca> | 2023-06-27 14:34:03 -0400 |
|---|---|---|
| committer | Peter Zhu <peter@peterzhu.ca> | 2023-06-28 09:50:51 -0400 |
| commit | a500eb9f8c487c9245d82f9b3c64cd3ddf44c836 (patch) | |
| tree | 6be42567aa793b3d046e8217a54f1aa74d4c6114 /test | |
| parent | 3d7a6bbc12d9eed9f1e0135c44fdeab08434e4b5 (diff) | |
Fix memory leak in Ripper
The following script leaks memory in Ripper:
```ruby
require "ripper"
20.times do
100_000.times do
Ripper.parse("")
end
puts `ps -o rss= -p #{$$}`
end
```
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/7985
Diffstat (limited to 'test')
| -rw-r--r-- | test/ripper/test_ripper.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/test/ripper/test_ripper.rb b/test/ripper/test_ripper.rb index 76276c54ef..a3fa050998 100644 --- a/test/ripper/test_ripper.rb +++ b/test/ripper/test_ripper.rb @@ -141,6 +141,14 @@ end assert_nothing_raised { Ripper.lex src } end + def test_no_memory_leak + assert_no_memory_leak(%w(-rripper), "", "#{<<~'end;'}", rss: true) + 10_000_000.times do + Ripper.parse("") + end + end; + end + class TestInput < self Input = Struct.new(:lines) do def gets |
