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.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/objspace/test_objspace.rb b/test/objspace/test_objspace.rb
index 5a0660ed52..aec4572044 100644
--- a/test/objspace/test_objspace.rb
+++ b/test/objspace/test_objspace.rb
@@ -203,4 +203,31 @@ class TestObjSpace < Test::Unit::TestCase
end;
end
end
+
+ def test_dump
+ info = nil
+ ObjectSpace.trace_object_allocations do
+ str = "hello world"
+ info = ObjectSpace.dump(str)
+ end
+
+ assert_match /"type":"STRING"/, info
+ assert_match /"embedded":true, "bytesize":11, "value":"hello world", "encoding":"UTF-8"/, info
+ assert_match /"file":"#{Regexp.escape __FILE__}", "line":#{__LINE__-6}/, info
+ assert_match /"method":"test_dump"/, info
+ end
+
+ def test_dump_all
+ entry = /"value":"this is a test string", "encoding":"UTF-8", "file":"-", "line":4, "method":"dump_my_heap_please"/
+ assert_in_out_err(%w[-robjspace], <<-'end;', entry)
+ def dump_my_heap_please
+ ObjectSpace.trace_object_allocations_start
+ GC.start
+ "this is a test string".force_encoding("UTF-8")
+ ObjectSpace.dump_all(output: :stdout)
+ end
+
+ dump_my_heap_please
+ end;
+ end
end