From: Tim Peters Date: Thu, 11 Jul 2002 18:26:21 +0000 (+0000) Subject: subtype_resurrection(): The test suite with -l properly reported the X-Git-Tag: v2.3c1~5044 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=14cb1e1eff09fc8b93681c4c0b00a21862817159;p=python 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 bbc6706444..ff5cefeae6 100644 --- a/Lib/test/test_descr.py +++ b/Lib/test/test_descr.py @@ -3184,6 +3184,7 @@ def slices(): vereq(a, [2,3,1]) def subtype_resurrection(): + import gc if verbose: print "Testing resurrection of new-style instance..." @@ -3196,12 +3197,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 do_this_first(): if verbose: print "Testing SF bug 551412 ..."