From a17fb2c8e6e548e88c309ee64d662d1761baa08a Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Thu, 11 Jul 2002 18:30:02 +0000 Subject: [PATCH] subtype_resurrection(): The test suite with -l properly reported the immortal object here as a leak. Made the object mortal again at the end. --- Lib/test/test_descr.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py index bbdcc0935efc..903907723cfc 100644 --- a/Lib/test/test_descr.py +++ b/Lib/test/test_descr.py @@ -2982,6 +2982,7 @@ def copy_setstate(): vereq(b.getfoo(), 24) def subtype_resurrection(): + import gc if verbose: print "Testing resurrection of new-style instance..." @@ -2994,12 +2995,22 @@ def subtype_resurrection(): c = C() c.attr = 42 - # The only interesting thing here is whether this blows up, due to flawed + # The most interesting thing here is whether this blows up, due to flawed # GC tracking logic in typeobject.c's call_finalizer() (a 2.2.1 bug). del c - del C.container[-1] # resurrect it again for the heck of it + + # If that didn't blow up, it's also interesting to see whether clearing + # the last container slot works: that will attempt to delete c again, + # which will cause c to get appended back to the container again "during" + # the del. + del C.container[-1] + vereq(len(C.container), 1) vereq(C.container[-1].attr, 42) + # Make c mortal again, so that the test framework with -l doesn't report + # it as a leak. + del C.__del__ + def test_main(): class_docstrings() lists() -- 2.47.3