mirror of
https://github.com/python/cpython.git
synced 2025-11-01 18:51:43 +00:00
subtype_resurrection(): The test suite with -l properly reported the
immortal object here as a leak. Made the object mortal again at the end.
This commit is contained in:
parent
76c81eecfa
commit
14cb1e1eff
1 changed files with 13 additions and 2 deletions
|
|
@ -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 ..."
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue