Skip to content

Commit 8eecb91

Browse files
Revert a premature patch for issue #14010 (changeset 846bd418aee5).
2 parents 824b938 + 320d178 commit 8eecb91

6 files changed

Lines changed: 14 additions & 224 deletions

File tree

Lib/test/test_builtin.py

Lines changed: 1 addition & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1564,40 +1564,8 @@ def test_baddecorator(self):
15641564
data = 'The quick Brown fox Jumped over The lazy Dog'.split()
15651565
self.assertRaises(TypeError, sorted, data, None, lambda x,y: 0)
15661566

1567-
class TestRecursionLimit(unittest.TestCase):
1568-
# Issue #14010
1569-
recursionlimit = sys.getrecursionlimit()
1570-
1571-
def test_filter(self):
1572-
it = (0, 1)
1573-
for _ in range(self.recursionlimit):
1574-
it = filter(bool, it)
1575-
with self.assertRaises(RuntimeError):
1576-
for _ in it:
1577-
pass
1578-
del it
1579-
1580-
def test_map(self):
1581-
it = (0, 1)
1582-
for _ in range(self.recursionlimit):
1583-
it = map(int, it)
1584-
with self.assertRaises(RuntimeError):
1585-
for _ in it:
1586-
pass
1587-
del it
1588-
1589-
def test_zip(self):
1590-
it = (0, 1)
1591-
for _ in range(self.recursionlimit):
1592-
it = zip(it)
1593-
with self.assertRaises(RuntimeError):
1594-
for _ in it:
1595-
pass
1596-
del it
1597-
1598-
15991567
def test_main(verbose=None):
1600-
test_classes = (BuiltinTest, TestSorted, TestRecursionLimit)
1568+
test_classes = (BuiltinTest, TestSorted)
16011569

16021570
run_unittest(*test_classes)
16031571

Lib/test/test_itertools.py

Lines changed: 1 addition & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -1808,121 +1808,6 @@ def __init__(self, newarg=None, *args):
18081808
self.assertNotIn("does not take keyword arguments", err.args[0])
18091809

18101810

1811-
class TestRecursionLimit(unittest.TestCase):
1812-
# Issue #14010
1813-
recursionlimit = sys.getrecursionlimit()
1814-
1815-
def test_accumulate(self):
1816-
it = (0, 1)
1817-
for _ in range(self.recursionlimit):
1818-
it = accumulate(it)
1819-
with self.assertRaises(RuntimeError):
1820-
for _ in it:
1821-
pass
1822-
del it
1823-
1824-
def test_chain(self):
1825-
it = (0, 1)
1826-
for _ in range(self.recursionlimit):
1827-
it = chain(it, ())
1828-
with self.assertRaises(RuntimeError):
1829-
for _ in it:
1830-
pass
1831-
del it
1832-
1833-
def test_compress(self):
1834-
data = (0, 1)
1835-
selectors = (True, True)
1836-
it = data
1837-
for _ in range(self.recursionlimit):
1838-
it = compress(it, selectors)
1839-
with self.assertRaises(RuntimeError):
1840-
for _ in it:
1841-
pass
1842-
del it
1843-
1844-
it = selectors
1845-
for _ in range(self.recursionlimit):
1846-
it = compress(data, it)
1847-
with self.assertRaises(RuntimeError):
1848-
for _ in it:
1849-
pass
1850-
del it
1851-
1852-
def test_cycle(self):
1853-
it = (0, 1)
1854-
for _ in range(self.recursionlimit):
1855-
it = cycle(it)
1856-
with self.assertRaises(RuntimeError):
1857-
for _ in range(3):
1858-
next(it)
1859-
del it
1860-
1861-
def test_dropwhile(self):
1862-
it = (0, 1, 0)
1863-
for _ in range(self.recursionlimit):
1864-
it = dropwhile(bool, it)
1865-
with self.assertRaises(RuntimeError):
1866-
for _ in it:
1867-
pass
1868-
del it
1869-
1870-
def test_filterfalse(self):
1871-
it = (0, 1)
1872-
for _ in range(self.recursionlimit):
1873-
it = filterfalse(bool, it)
1874-
with self.assertRaises(RuntimeError):
1875-
for _ in it:
1876-
pass
1877-
del it
1878-
1879-
def test_groupby(self):
1880-
key = operator.itemgetter(0)
1881-
it = ((0, []), (1, []))
1882-
for _ in range(self.recursionlimit):
1883-
it = groupby(it, key)
1884-
with self.assertRaises(RuntimeError):
1885-
for _ in it:
1886-
pass
1887-
del it
1888-
1889-
def test_islice(self):
1890-
it = (0, 1)
1891-
for _ in range(self.recursionlimit):
1892-
it = islice(it, 2)
1893-
with self.assertRaises(RuntimeError):
1894-
for _ in it:
1895-
pass
1896-
del it
1897-
1898-
def test_starmap(self):
1899-
it = 'ab'
1900-
for _ in range(self.recursionlimit):
1901-
it = starmap(tuple, it)
1902-
with self.assertRaises(RuntimeError):
1903-
for _ in it:
1904-
pass
1905-
del it
1906-
1907-
def test_takewhile(self):
1908-
it = (1, 0)
1909-
for _ in range(self.recursionlimit):
1910-
it = takewhile(bool, it)
1911-
with self.assertRaises(RuntimeError):
1912-
for _ in it:
1913-
pass
1914-
del it
1915-
1916-
def test_zip_longest(self):
1917-
it = (0, 1)
1918-
for _ in range(self.recursionlimit):
1919-
it = zip_longest(it)
1920-
with self.assertRaises(RuntimeError):
1921-
for _ in it:
1922-
pass
1923-
del it
1924-
1925-
19261811
libreftest = """ Doctest for examples in the library reference: libitertools.tex
19271812
19281813
@@ -2157,7 +2042,7 @@ def test_zip_longest(self):
21572042
def test_main(verbose=None):
21582043
test_classes = (TestBasicOps, TestVariousIteratorArgs, TestGC,
21592044
RegressionTests, LengthTransparency,
2160-
SubclassWithKwargsTest, TestExamples, TestRecursionLimit)
2045+
SubclassWithKwargsTest, TestExamples)
21612046
support.run_unittest(*test_classes)
21622047

21632048
# verify reference counting

Misc/NEWS

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ What's New in Python 3.4.0 Alpha 1?
1010
Core and Builtins
1111
-----------------
1212

13-
- Issue #14010: Fix a crash when iterating or deleting deeply nested filters
14-
(builting and in itertools module, i.e. map(), itertools.chain(), etc).
15-
1613
- Issue #17469: Fix _Py_GetAllocatedBlocks() and sys.getallocatedblocks()
1714
when running on valgrind.
1815

0 commit comments

Comments
 (0)