summaryrefslogtreecommitdiff
path: root/test/ruby
diff options
context:
space:
mode:
authornagachika <nagachika@ruby-lang.org>2023-09-30 13:47:33 +0900
committernagachika <nagachika@ruby-lang.org>2023-09-30 13:47:33 +0900
commita191cf561786bde3d0b7d298aab1fbeb1051645c (patch)
treeb59cb95f6a1d13066135e6717d5c87c371d83171 /test/ruby
parent97b7070ebd5493de8d3a6a9b0ecc91bef5068d3f (diff)
merge revision(s) c42261059dfebabbf0391327a5e077545a9bc438: [Backport #19901]
[Bug #19901] fix leak in module clone Co-authored-by: Peter Zhu <peter@peterzhu.ca> --- class.c | 1 + test/ruby/test_module.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+)
Diffstat (limited to 'test/ruby')
-rw-r--r--test/ruby/test_module.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/ruby/test_module.rb b/test/ruby/test_module.rb
index 425cbdf031..dd8cc471d0 100644
--- a/test/ruby/test_module.rb
+++ b/test/ruby/test_module.rb
@@ -3318,6 +3318,18 @@ class TestModule < Test::Unit::TestCase
CODE
end
+ def test_module_clone_memory_leak
+ # [Bug #19901]
+ assert_no_memory_leak([], <<~PREP, <<~CODE, rss: true)
+ code = proc do
+ Module.new.clone
+ end
+ 1_000.times(&code)
+ PREP
+ 1_000_000.times(&code)
+ CODE
+ end
+
private
def assert_top_method_is_private(method)