summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-objectspace/test/objectspace.rb
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-07-17 11:15:07 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2020-07-17 11:15:07 +0900
commitf00657ead7c3e5f6f9a346d7797a280b5c9f02fa (patch)
treed1c96256f8537ae6a408fb51d3cf3e0ad62f8ff9 /mrbgems/mruby-objectspace/test/objectspace.rb
parent2e56da5a78befb93a1e4debe42d783c4b7be4c30 (diff)
downloadmruby-f00657ead7c3e5f6f9a346d7797a280b5c9f02fa.tar.gz
mruby-f00657ead7c3e5f6f9a346d7797a280b5c9f02fa.zip
Remove recursive `memsize_of`; #5032
This is enhancement from CRuby's `memsize_of`. We need to change the CRuby first for the enhancement.
Diffstat (limited to 'mrbgems/mruby-objectspace/test/objectspace.rb')
-rw-r--r--mrbgems/mruby-objectspace/test/objectspace.rb69
1 files changed, 1 insertions, 68 deletions
diff --git a/mrbgems/mruby-objectspace/test/objectspace.rb b/mrbgems/mruby-objectspace/test/objectspace.rb
index 610cdfbfa..c8f0c4d24 100644
--- a/mrbgems/mruby-objectspace/test/objectspace.rb
+++ b/mrbgems/mruby-objectspace/test/objectspace.rb
@@ -1,4 +1,4 @@
-# coding: utf-8
+# coding: cp932
assert('ObjectSpace.count_objects') do
h = {}
f = Fiber.new {} if Object.const_defined?(:Fiber)
@@ -134,71 +134,4 @@ assert 'ObjectSpace.memsize_of' do
#hash
assert_not_equal ObjectSpace.memsize_of({}), 0, 'empty hash size not zero'
-
- # recursion
- foo_str = 'foo' * 10
- bar_str = 'bar' * 10
- caz_str = 'caz' * 10
- fbc_ary = [foo_str, bar_str, caz_str]
- assert_operator ObjectSpace.memsize_of(fbc_ary),
- :<,
- ObjectSpace.memsize_of(fbc_ary, recurse: true),
- 'basic array recursion'
-
- big_ary = [ 'a' * 10,
- [ 'b' * 10,
- [ 'c' * 10,
- [ 'd' * 10,
- [ 'e' * 10,
- [ 'f' * 10,
- ['g' * 10]
- ] * 10,
- ] * 10,
- ] * 10,
- ] * 10,
- ] * 10,
- ] * 10
- assert_operator ObjectSpace.memsize_of(big_ary),
- :<,
- ObjectSpace.memsize_of(big_ary, recurse: true),
- 'large array recursion'
-
- assert_nothing_raised 'infinite array recursion' do
- ObjectSpace.memsize_of(fbc_ary.push(fbc_ary))
- end
-
- basic_hsh = {a: [foo_str, bar_str], b: caz_str, 'c' => {}}
- assert_operator ObjectSpace.memsize_of(basic_hsh),
- :<,
- ObjectSpace.memsize_of(basic_hsh, recurse: true),
- 'hash recursion with basic keys'
-
- weird_keys = {big_ary => foo_str}
- assert_operator ObjectSpace.memsize_of(weird_keys),
- :<,
- ObjectSpace.memsize_of(weird_keys, recurse: true),
- 'hash recursion with collection as key'
-
- basic_hsh.store('d', basic_hsh)
- assert_nothing_raised 'hash value recursion' do
- ObjectSpace.memsize_of basic_hsh, recurse: true
- end
-
- foo_klass = Class.new do
- def bar= b
- @bar = b
- end
- end
-
- fk_one = foo_klass.new
- fk_one.bar = fbc_ary
- assert_operator ObjectSpace.memsize_of(fk_one),
- :<,
- ObjectSpace.memsize_of(fk_one, recurse: true),
- 'basic ivar recursion'
-
- fk_one.bar = fk_one
- assert_nothing_raised 'ivar infinite recursion' do
- ObjectSpace.memsize_of(fk_one, recurse: true)
- end
end