mirror of
https://github.com/AdaCore/cpython.git
synced 2026-02-12 12:57:15 -08: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:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user