test_gc
-list 0x831a754
-dict 0x831a754
-list 0x831a754
-tuple 0x831a734
-class 0x831a794
-<test_gc.A instance at 831a754>
-a <test_gc.A instance at 831a754>
-b <test_gc.B instance at 831a95c>
-dict 0x831a9bc
-func 0x831d9e4
def test_list():
l = []
l.append(l)
- print 'list 0x%x' % id(l)
gc.collect()
del l
assert gc.collect() == 1
def test_dict():
d = {}
d[1] = d
- print 'dict 0x%x' % id(d)
gc.collect()
del d
assert gc.collect() == 1
l = []
t = (l,)
l.append(t)
- print 'list 0x%x' % id(l)
- print 'tuple 0x%x' % id(t)
gc.collect()
del t
del l
class A:
pass
A.a = A
- print 'class 0x%x' % id(A)
gc.collect()
del A
assert gc.collect() > 0
pass
a = A()
a.a = a
- print repr(a)
gc.collect()
del a
assert gc.collect() > 0
id_a = id(a)
b = B()
b.b = b
- print 'a', repr(a)
- print 'b', repr(b)
gc.collect()
gc.garbage[:] = []
del a
def test_function():
d = {}
exec("def f(): pass\n") in d
- print 'dict 0x%x' % id(d)
- print 'func 0x%x' % id(d['f'])
gc.collect()
del d
assert gc.collect() == 2
def test_all():
- debug = gc.get_debug()
- gc.set_debug(gc.DEBUG_LEAK | gc.DEBUG_STATS)
test_list()
test_dict()
test_tuple()
test_method()
test_finalizer()
test_function()
- gc.set_debug(debug)
test_all()