diff options
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | tests/parse.test | 42 |
2 files changed, 42 insertions, 1 deletions
@@ -4,6 +4,7 @@ to reset iPtr->returnCode, causing tests parse-18.17 and parse-18.21 to fail strangely. * tests/parse.test (parse-18.21): Corrected now functioning test. + Added further coverage tests. 2003-03-31 Don Porter <dgp@users.sourceforge.net> diff --git a/tests/parse.test b/tests/parse.test index daecce5..9764cf1 100644 --- a/tests/parse.test +++ b/tests/parse.test @@ -8,7 +8,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: parse.test,v 1.14 2003/04/01 07:18:37 dgp Exp $ +# RCS: @(#) $Id: parse.test,v 1.15 2003/04/01 17:08:16 dgp Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { package require tcltest @@ -813,6 +813,46 @@ test parse-18.21 {Tcl_SubstObj, exception handling} { } msg] $msg } [list 1 "extra characters after close-brace"] +test parse-18.22 {Tcl_SubstObj, side effects} { + set a 0 + list [subst {foo[incr a]bar}] $a +} [list foo1bar 1] +test parse-18.23 {Tcl_SubstObj, side effects} { + set a 0 + list [subst {foo[incr a; incr a]bar}] $a +} [list foo2bar 2] +test parse-18.24 {Tcl_SubstObj, side effects} { + set a 0 + list [subst {foo[incr a; break; incr a]bar}] $a +} [list foo 1] +test parse-18.25 {Tcl_SubstObj, side effects} { + set a 0 + list [subst {foo[incr a; continue; incr a]bar}] $a +} [list foobar 1] +test parse-18.26 {Tcl_SubstObj, side effects} { + set a 0 + list [subst {foo[incr a; return; incr a]bar}] $a +} [list foobar 1] +test parse-18.27 {Tcl_SubstObj, side effects} { + set a 0 + list [subst {foo[incr a; return -code 10; incr a]bar}] $a +} [list foobar 1] +test parse-18.28 {Tcl_SubstObj, side effects} { + set a 0 + catch {subst {foo[incr a; parse error {}{}; incr a]bar}} + set a +} 1 +test parse-18.29 {Tcl_SubstObj, side effects} { + set a 0 + catch {subst {foo[incr a; incr a; parse error {}{}]bar}} + set a +} 2 +test parse-18.30 {Tcl_SubstObj, side effects} { + set a 0 + catch {subst {foo[incr a; incr a parse error {}{}]bar}} + set a +} 1 + # cleanup catch {unset a} ::tcltest::cleanupTests |