--- /dev/null
+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]
+>>>
+
--- /dev/null
+
+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
--- /dev/null
+
+# 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()