/trunk/Examples/test-suite/python/refcount_runme.py
# · Python · 61 lines · 37 code · 20 blank · 4 comment · 9 complexity · a229094f13b2876b99066aa3d357f9ea MD5 · raw file
- from refcount import *
- #
- # very innocent example
- #
- a = A3()
- b1 = B(a)
- b2 = B.create(a)
- if a.ref_count() != 3:
- raise RuntimeError("Count = %d" % a.ref_count())
- rca = b2.get_rca()
- b3 = B.create(rca)
- if a.ref_count() != 5:
- raise RuntimeError("Count = %d" % a.ref_count())
- v = vector_A(2)
- v[0] = a
- v[1] = a
- x = v[0]
- del v
- if a.ref_count() != 6:
- raise RuntimeError("Count = %d" % a.ref_count())
- # Check %newobject
- b4 = b2.cloner()
- if b4.ref_count() != 1:
- raise RuntimeError
- b5 = global_create(a)
- if b5.ref_count() != 1:
- raise RuntimeError
- b6 = Factory.create(a)
- if b6.ref_count() != 1:
- raise RuntimeError
- b7 = Factory().create2(a)
- if b7.ref_count() != 1:
- raise RuntimeError
- if a.ref_count() != 10:
- raise RuntimeError("Count = %d" % a.ref_count())
- del b4
- del b5
- del b6
- del b7
- if a.ref_count() != 6:
- raise RuntimeError("Count = %d" % a.ref_count())