summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2002-06-12 14:38:04 (GMT)
committerGuido van Rossum <guido@python.org>2002-06-12 14:38:04 (GMT)
commit05e01ee1149f2795c0daa86415528254ebe1cc4a (patch)
treea9ed00a33c59f6e16820617454363831b4663616
parentc5fe5eb8d2650026ae7ce9195cd0dfc153514d2a (diff)
downloadcpython-05e01ee1149f2795c0daa86415528254ebe1cc4a.zip
cpython-05e01ee1149f2795c0daa86415528254ebe1cc4a.tar.gz
cpython-05e01ee1149f2795c0daa86415528254ebe1cc4a.tar.bz2
Add a testcase to ensure that cycles going through the __class__ link
of a new-style instance are detected by the garbage collector.
-rw-r--r--Lib/test/test_gc.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py
index 22f7e74..23bb7c5 100644
--- a/Lib/test/test_gc.py
+++ b/Lib/test/test_gc.py
@@ -83,6 +83,12 @@ def test_newinstance():
gc.collect()
del a
expect_nonzero(gc.collect(), "newinstance(2)")
+ del B, C
+ expect_nonzero(gc.collect(), "newinstance(3)")
+ A.a = A()
+ del A
+ expect_nonzero(gc.collect(), "newinstance(4)")
+ expect(gc.collect(), 0, "newinstance(5)")
def test_method():
# Tricky: self.__init__ is a bound method, it references the instance.