diff options
author | Steve Bennett <steveb@workware.net.au> | 2010-01-27 14:21:41 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2010-10-15 11:02:47 +1000 |
commit | c9324c18e63eb67b1d3f7418c345d1dd1e6d3bdb (patch) | |
tree | 5b94b7f1cf1b4b48d9f9a4ed6c385c396d78b4b8 /tests | |
parent | 8189b7f24ad432dc21faab9f8fad990ad2bca551 (diff) | |
download | jimtcl-c9324c18e63eb67b1d3f7418c345d1dd1e6d3bdb.zip jimtcl-c9324c18e63eb67b1d3f7418c345d1dd1e6d3bdb.tar.gz jimtcl-c9324c18e63eb67b1d3f7418c345d1dd1e6d3bdb.tar.bz2 |
Add basic Tcl implementation of 'try ... finally'
Diffstat (limited to 'tests')
-rw-r--r-- | tests/try.test | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/try.test b/tests/try.test new file mode 100644 index 0000000..3cc86fb --- /dev/null +++ b/tests/try.test @@ -0,0 +1,65 @@ +source testing.tcl + +test try-1.1 "Simple case" { + try { + set x 0 + } finally { + incr x + } +} 0 + +test try-1.2 "Error in body" { + list [catch { + try { + set x 0 + error message + } finally { + incr x + } + } msg] $msg $x +} {1 message 1} + +test try-1.3 "Error in finally" { + list [catch { + try { + set x 0 + } finally { + incr x + error finally + } + } msg] $msg $x +} {1 finally 1} + +test try-1.4 "Error in both" { + list [catch { + try { + set x 0 + error message + } finally { + incr x + error finally + } + } msg] $msg $x +} {1 message 1} + +test try-1.5 "break in body" { + list [catch { + try { + set x 0 + break + } finally { + incr x + } + } msg] $msg $x +} {3 {} 1} + +test try-1.6 "break in finally" { + list [catch { + try { + set x 0 + } finally { + incr x + break + } + } msg] $msg $x +} {3 {} 1} |