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
This commit is contained in:
parent
cde8750414
commit
621292237c
|
@ -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()
|
Loading…
Reference in New Issue