$ ./python ../Lib/test/regrtest.py -l test_gc test_gc Warning: test created 20 uncollectable object(s). 1 test OK.
[Neil S]
Something weird is going on. This patch fixes test_finalizer_newclass:
--- Lib/test/test_gc.py 9 Aug 2002 17:38:16 -0000 1.19 +++ Lib/test/test_gc.py 10 Aug 2002 18:33:47 -0000 @@ -147,6 +147,8 @@ else: raise TestFailed, "didn't find obj in garbage (finalizer)" gc.garbage.remove(obj) + del A, B, obj + gc.collect() # finds 13 objects!
I guess there is a reference cycle there that wasn't there before. Could it have something to do with tp_del?
I don't think so -- a Python of a month old had the same warnings when I added these tests that use new-style class. It's much simpler than this: new-style classes have cyclical references to themselves that must be collected. It so happened that the saveall test was fooled by these. Tim checked in a fix that prevents this. --Guido van Rossum (home page: http://www.python.org/~guido/)