From: Tim Peters Date: Thu, 11 Jul 2002 18:30:02 +0000 (+0000) Subject: subtype_resurrection(): The test suite with -l properly reported the X-Git-Tag: v2.2.2b1~272 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a17fb2c8e6e548e88c309ee64d662d1761baa08a;p=thirdparty%2FPython%2Fcpython.git subtype_resurrection(): The test suite with -l properly reported the immortal object here as a leak. Made the object mortal again at the end. --- 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()