diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/objspace/test_objspace.rb | 27 |
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 |