From 80f638fe19f6d40c53792eebda2dfdecc82ad75e Mon Sep 17 00:00:00 2001 From: Damien George <damien.p.george@gmail.com> Date: Wed, 3 Jun 2015 22:41:06 +0100 Subject: [PATCH] tests: Add test for recursive iternext stack overflow. --- tests/misc/recursive_iternext.py | 33 ++++++++++++++++++++++++++++ tests/misc/recursive_iternext.py.exp | 4 ++++ 2 files changed, 37 insertions(+) create mode 100644 tests/misc/recursive_iternext.py create mode 100644 tests/misc/recursive_iternext.py.exp diff --git a/tests/misc/recursive_iternext.py b/tests/misc/recursive_iternext.py new file mode 100644 index 000000000..ac3a17e93 --- /dev/null +++ b/tests/misc/recursive_iternext.py @@ -0,0 +1,33 @@ +# This tests that recursion with iternext doesn't lead to segfault. + +try: + x = (1, 2) + for i in range(1000): + x = enumerate(x) + tuple(x) +except RuntimeError: + print("RuntimeError") + +try: + x = (1, 2) + for i in range(1000): + x = filter(None, x) + tuple(x) +except RuntimeError: + print("RuntimeError") + +try: + x = (1, 2) + for i in range(1000): + x = map(max, x, ()) + tuple(x) +except RuntimeError: + print("RuntimeError") + +try: + x = (1, 2) + for i in range(1000): + x = zip(x) + tuple(x) +except RuntimeError: + print("RuntimeError") diff --git a/tests/misc/recursive_iternext.py.exp b/tests/misc/recursive_iternext.py.exp new file mode 100644 index 000000000..80d1488a3 --- /dev/null +++ b/tests/misc/recursive_iternext.py.exp @@ -0,0 +1,4 @@ +RuntimeError +RuntimeError +RuntimeError +RuntimeError -- GitLab