Add directory which contains known ref leaks. Some of these are likely to be system dependent (like test_gestalt).

This commit is contained in:
Neal Norwitz 2006-02-28 19:02:05 +00:00
parent 99b4ee6373
commit edc8f1366a
4 changed files with 52 additions and 0 deletions

18
Lib/test/leakers/README Normal file
View File

@ -0,0 +1,18 @@
This directory contains test cases that are known to leak references.
The idea is that you can import these modules while in the interpreter
and call the leak function repeatedly. This will only be helpful if
the interpreter was built in debug mode. If the total ref count
doesn't increase, the bug has been fixed.
Here's an example interpreter session for test_gestalt which still leaks:
>>> from test.leakers.test_gestalt import leak
[24275 refs]
>>> leak()
[28936 refs]
>>> leak()
[28938 refs]
>>> leak()
[28940 refs]
>>>

View File

View File

@ -0,0 +1,15 @@
import sys
if sys.platform != 'darwin':
raise ValueError, "This test only leaks on Mac OS X'
def leak():
# taken from platform._mac_ver_lookup()
from gestalt import gestalt
import MacOS
try:
gestalt('sysu')
except MacOS.Error:
pass

View File

@ -0,0 +1,19 @@
# Test case taken from test_itertools
# See http://mail.python.org/pipermail/python-dev/2005-November/058339.html
from itertools import tee
def leak():
def fib():
def yield_identity_forever(g):
while 1:
yield g
def _fib():
for i in yield_identity_forever(head):
yield i
head, tail, result = tee(_fib(), 3)
return result
x = fib()
x.next()