[Python-Dev] test_minidom non-failure failure? (take 2)
Neil Schemenauer
nas@arctrix.com
Thu, 12 Oct 2000 06:43:09 -0700
On Thu, Oct 12, 2000 at 04:26:49PM -0500, Guido van Rossum wrote:
> > This is a policy decision. Is it okay for the test suite to
> > create garbage that is not collectable by reference counting?
>
> I don't see why that should be forbidden. After all some of the code
> we test has such leaks -- we haven't declared those absolute bugs.
Again, "-l" should probably not be a default. I don't know who
added it to TESTOPTS but it wasn't me.
> Can you give an example of how such garbage can be created?
Look at test_gc. Here is an example:
class Foo:
def __del__(self):
pass
foo = Foo()
foo.foo = foo
del foo
Theoretically this structure could be collected without problem
but the GC is too simple minded to realize that there is only one
finalizer involved. Here's a better example:
foo = Foo()
bar = Foo()
foo.bar = bar
bar.foo = foo
del foo, bar
The GC cannot safely break this cycle so it punts and adds the
instance objects involved to gc.garbage and forgets about it.
Neil