From 3f0c1c24528d8ce818434d8b553136d315b0d548 Mon Sep 17 00:00:00 2001 From: Damien George Date: Tue, 27 Sep 2016 12:46:50 +1000 Subject: [PATCH] tests/basics: Add test case for overflowing Py stack in try-finally. --- tests/basics/try_finally2.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 tests/basics/try_finally2.py diff --git a/tests/basics/try_finally2.py b/tests/basics/try_finally2.py new file mode 100644 index 0000000000..3c4171d91f --- /dev/null +++ b/tests/basics/try_finally2.py @@ -0,0 +1,30 @@ +# check that the Python stack does not overflow when the finally +# block itself uses more stack than the rest of the function +def f1(a, b): + pass +def test1(): + val = 1 + try: + raise ValueError() + finally: + f1(2, 2) # use some stack + print(val) # check that the local variable is the same +try: + test1() +except ValueError: + pass + +# same as above but with 3 args instead of 2, to use an extra stack entry +def f2(a, b, c): + pass +def test2(): + val = 1 + try: + raise ValueError() + finally: + f2(2, 2, 2) # use some stack + print(val) # check that the local variable is the same +try: + test2() +except ValueError: + pass