diff options
-rw-r--r-- | Lib/test/test_descr.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py index bbc6706..ff5cefe 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 ..." |