[Python-checkins] r45377 - python/trunk/Lib/test/leakers/test_tee.py

neal.norwitz python-checkins at python.org
Fri Apr 14 08:33:25 CEST 2006


Author: neal.norwitz
Date: Fri Apr 14 08:33:24 2006
New Revision: 45377

Added:
   python/trunk/Lib/test/leakers/test_tee.py   (contents, props changed)
Log:
Restore test tee with some modifications.  
The test case came from test_generators, not test_itertools.
Ensure there's no cyclic garbage we are counting.

This is weird because it leaks, then reaches a limit:

python.exe -i test_tee.py 
>>> leak()
0
[26633 refs]
>>> leak()
0
[26658 refs]
>>> leak()
0
[26683 refs]
>>> leak()
0
[26708 refs]
>>> leak()
0
[26708 refs]
>>> leak()
0
[26708 refs]
>>> leak()
0



Added: python/trunk/Lib/test/leakers/test_tee.py
==============================================================================
--- (empty file)
+++ python/trunk/Lib/test/leakers/test_tee.py	Fri Apr 14 08:33:24 2006
@@ -0,0 +1,25 @@
+
+# Test case taken from test_generators
+# See http://mail.python.org/pipermail/python-dev/2005-November/058339.html
+
+from itertools import tee
+import gc
+
+def leak():
+  def inner():
+    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()
+  inner()
+  gc.collect() ; gc.collect()
+  # this is expected to return 0
+  return gc.collect()


More information about the Python-checkins mailing list