diff options
author | Peter Zhu <peter@peterzhu.ca> | 2023-01-05 10:55:44 -0500 |
---|---|---|
committer | Peter Zhu <peter@peterzhu.ca> | 2023-01-05 16:00:36 -0500 |
commit | 2056c0a7c680350cf92a134e355c03e1efb10549 (patch) | |
tree | d452a4c3718d14832f15ce7742b33c53d03305ea /test/objspace/test_objspace.rb | |
parent | 53938efd7b0ac868b177b3e748996a3aef4bccb6 (diff) |
Add embedded status to dumps of T_OBJECT
This commit adds `"embedded":true` in ObjectSpace.dump for T_OBJECTs
that are embedded.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/7068
Diffstat (limited to 'test/objspace/test_objspace.rb')
-rw-r--r-- | test/objspace/test_objspace.rb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test/objspace/test_objspace.rb b/test/objspace/test_objspace.rb index 32cd1eda24..d76e55c2b2 100644 --- a/test/objspace/test_objspace.rb +++ b/test/objspace/test_objspace.rb @@ -358,6 +358,22 @@ class TestObjSpace < Test::Unit::TestCase assert_not_include(info, '"embedded":true') end + def test_dump_object + klass = Class.new + + # Empty object + info = ObjectSpace.dump(klass.new) + assert_include(info, '"embedded":true') + assert_include(info, '"ivars":0') + + # Non-embed object + obj = klass.new + 5.times { |i| obj.instance_variable_set("@ivar#{i}", 0) } + info = ObjectSpace.dump(obj) + assert_not_include(info, '"embedded":true') + assert_include(info, '"ivars":5') + end + def test_dump_control_char assert_include(ObjectSpace.dump("\x0f"), '"value":"\u000f"') assert_include(ObjectSpace.dump("\C-?"), '"value":"\u007f"') |