summaryrefslogtreecommitdiff
path: root/test/objspace/test_objspace.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/objspace/test_objspace.rb')
-rw-r--r--test/objspace/test_objspace.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/objspace/test_objspace.rb b/test/objspace/test_objspace.rb
index faa22f1424..a9b902ed45 100644
--- a/test/objspace/test_objspace.rb
+++ b/test/objspace/test_objspace.rb
@@ -350,6 +350,21 @@ class TestObjSpace < Test::Unit::TestCase
RUBY
end
+ def test_trace_object_allocations_does_not_reuse_freed_allocation_info
+ assert_separately(%w(-robjspace), <<~RUBY)
+ ObjectSpace.trace_object_allocations do
+ 1_000_000.times.map { Object.new }
+ end
+
+ GC.start
+
+ objs = 1_000_000.times.map { Object.new }
+
+ leaked = objs.count { |obj| ObjectSpace.allocation_sourcefile(obj) }
+ assert_equal 0, leaked
+ RUBY
+ end
+
def test_dump_flags
# Ensure that the fstring is promoted to old generation
4.times { GC.start }