From ef379d0a10e800982d4a10ad623d2426d68e830d Mon Sep 17 00:00:00 2001 From: Audun Wilhelmsen Date: Sun, 23 Feb 2014 00:20:16 +0100 Subject: Added test cases for return in except statements. --- tests/exception/tnestedreturn.nim | 40 ++++++++++++++++++++++++++++++++++++++ tests/exception/tnestedreturn2.nim | 20 +++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 tests/exception/tnestedreturn.nim create mode 100644 tests/exception/tnestedreturn2.nim diff --git a/tests/exception/tnestedreturn.nim b/tests/exception/tnestedreturn.nim new file mode 100644 index 000000000..b9f7843f6 --- /dev/null +++ b/tests/exception/tnestedreturn.nim @@ -0,0 +1,40 @@ +discard """ + file: "tnestedreturn.nim" + output: "A\nB\nC\n" +""" + +# Various tests of return nested in double try/except statements + +proc test1() = + + finally: echo "A" + + try: + raise newException(EOS, "Problem") + except EOS: + return + +test1() + + +proc test2() = + + finally: echo "B" + + try: + return + except EOS: + discard + +test2() + +proc test3() = + try: + try: + raise newException(EOS, "Problem") + except EOS: + return + finally: + echo "C" + +test3() diff --git a/tests/exception/tnestedreturn2.nim b/tests/exception/tnestedreturn2.nim new file mode 100644 index 000000000..14a2dab92 --- /dev/null +++ b/tests/exception/tnestedreturn2.nim @@ -0,0 +1,20 @@ +discard """ + file: "tnestedreturn.nim" + outputsub: "Error: unhandled exception: Problem [EOS]" + exitcode: "1" +""" + +proc test4() = + try: + try: + raise newException(EOS, "Problem") + except EOS: + return + finally: + discard + +# Should cause unhandled exception error, +# but could cause segmentation fault if +# exceptions are not handled properly. +test4() +raise newException(EOS, "Problem") -- cgit 1.4.1-2-gfad0 d>
path: root/compiler/sempass2.nim
blob: 6afde5f0597d026153e0b92d9ecee1795d1a0f21 (plain) (tree)
1
2
3
4
5
6
7
8
9