From c9887cbbe2aed0c96228832757142f501fc6e1ac Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Fri, 31 Jan 2014 21:33:07 +0200 Subject: [PATCH] Add basic try-finally testcase. It's mildly suprising these work without further changes to exception handling code (the only change required was to handle SETUP_FINALLY). --- tests/basics/try-finally1.py | 71 ++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 tests/basics/try-finally1.py diff --git a/tests/basics/try-finally1.py b/tests/basics/try-finally1.py new file mode 100644 index 0000000000..2416f6d188 --- /dev/null +++ b/tests/basics/try-finally1.py @@ -0,0 +1,71 @@ +print("noexc-finally") +try: + print("try") +finally: + print("finally") + +print("noexc-finally-finally") +try: + print("try1") + try: + print("try2") + finally: + print("finally2") +finally: + print("finally1") +print() + +print("noexc-finally-func-finally") +def func2(): + try: + print("try2") + finally: + print("finally2") + +try: + print("try1") + func2() +finally: + print("finally1") +print() + + +print("exc-finally-except") +try: + print("try1") + try: + print("try2") + foo() + except: + print("except2") +finally: + print("finally1") +print() + +print("exc-finally-except-filter") +try: + print("try1") + try: + print("try2") + foo() + except NameError: + print("except2") +finally: + print("finally1") +print() + + +print("exc-except-finally-finally") +try: # top-level catch-all except to not fail script + try: + print("try1") + try: + print("try2") + foo() + finally: + print("finally2") + finally: + print("finally1") +except: + print("catch-all except") +print()