summaryrefslogtreecommitdiff
path: root/test/objspace/test_objspace.rb
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2023-01-05 10:55:44 -0500
committerPeter Zhu <peter@peterzhu.ca>2023-01-05 16:00:36 -0500
commit2056c0a7c680350cf92a134e355c03e1efb10549 (patch)
treed452a4c3718d14832f15ce7742b33c53d03305ea /test/objspace/test_objspace.rb
parent53938efd7b0ac868b177b3e748996a3aef4bccb6 (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.rb16
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"')