diff options
author | mdejong <mdejong> | 2003-02-06 22:44:56 (GMT) |
---|---|---|
committer | mdejong <mdejong> | 2003-02-06 22:44:56 (GMT) |
commit | 8a99de882edc8565ff543a67a58e02f5f517ba7c (patch) | |
tree | df7b90a9df2be40d32ff63faf11c6adc5c8ea2fd | |
parent | d42212caff8b39b67e45ffb2f80c0ca9123a7cae (diff) | |
download | tcl-8a99de882edc8565ff543a67a58e02f5f517ba7c.zip tcl-8a99de882edc8565ff543a67a58e02f5f517ba7c.tar.gz tcl-8a99de882edc8565ff543a67a58e02f5f517ba7c.tar.bz2 |
* generic/tclExecute.c (TclExecuteByteCode): When an
error is encountered reading the increment value during
a compiled call to incr, add a "(reading increment)"
error string to the errorInfo variable. This makes
the errorInfo variable set by the compiled incr command
match the value set by the non-compiled version.
* tests/incr-old.test: Change errorInfo result for
the compiled incr command case to match the modified
implementation.
* tests/incr.test: Add tests to make sure the compiled
and non-compiled errorInfo messages are the same.
-rw-r--r-- | ChangeLog | 14 | ||||
-rw-r--r-- | generic/tclExecute.c | 3 | ||||
-rw-r--r-- | tests/incr-old.test | 5 | ||||
-rw-r--r-- | tests/incr.test | 16 |
4 files changed, 34 insertions, 4 deletions
@@ -1,3 +1,17 @@ +2003-02-06 Mo DeJong <mdejong@users.sourceforge.net> + + * generic/tclExecute.c (TclExecuteByteCode): When an + error is encountered reading the increment value during + a compiled call to incr, add a "(reading increment)" + error string to the errorInfo variable. This makes + the errorInfo variable set by the compiled incr command + match the value set by the non-compiled version. + * tests/incr-old.test: Change errorInfo result for + the compiled incr command case to match the modified + implementation. + * tests/incr.test: Add tests to make sure the compiled + and non-compiled errorInfo messages are the same. + 2003-02-06 Don Porter <dgp@users.sourceforge.net> * library/tcltest/tcltest.tcl: Filename arguments to [outputChannel] diff --git a/generic/tclExecute.c b/generic/tclExecute.c index ef7797b..93bf3a9 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclExecute.c,v 1.91 2003/01/08 21:29:06 dgp Exp $ + * RCS: @(#) $Id: tclExecute.c,v 1.92 2003/02/06 22:44:57 mdejong Exp $ */ #include "tclInt.h" @@ -1918,6 +1918,7 @@ TclExecuteByteCode(interp, codePtr) if (result != TCL_OK) { TRACE_WITH_OBJ(("%u (by %s) => ERROR converting increment amount to int: ", opnd, O2S(valuePtr)), Tcl_GetObjResult(interp)); + Tcl_AddErrorInfo(interp, "\n (reading increment)"); goto checkForCatch; } FORCE_LONG(valuePtr, i, w); diff --git a/tests/incr-old.test b/tests/incr-old.test index 0344c42..1c78b82 100644 --- a/tests/incr-old.test +++ b/tests/incr-old.test @@ -13,7 +13,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: incr-old.test,v 1.5 2000/04/10 17:19:00 ericm Exp $ +# RCS: @(#) $Id: incr-old.test,v 1.6 2003/02/06 22:44:58 mdejong Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { package require tcltest @@ -62,7 +62,8 @@ test incr-old-2.5 {incr errors} { set x 123 list [catch {incr x 1a} msg] $msg $errorInfo } {1 {expected integer but got "1a"} {expected integer but got "1a" - while executing + (reading increment) + invoked from within "incr x 1a"}} test incr-old-2.6 {incr errors} { proc readonly args {error "variable is read-only"} diff --git a/tests/incr.test b/tests/incr.test index f3ea408..1aeea59 100644 --- a/tests/incr.test +++ b/tests/incr.test @@ -10,7 +10,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: incr.test,v 1.6 2000/04/10 17:19:00 ericm Exp $ +# RCS: @(#) $Id: incr.test,v 1.7 2003/02/06 22:44:58 mdejong Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { package require tcltest @@ -502,6 +502,20 @@ test incr-2.29 {incr command (not compiled): runtime error, bad variable value} set x " - " list [catch {$z x 1} msg] $msg } {1 {expected integer but got " - "}} +test incr-2.30 {incr command (not compiled): bad increment} { + set z incr + set x 0 + list [catch {$z x 1a} msg] $msg $errorInfo +} {1 {expected integer but got "1a"} {expected integer but got "1a" + (reading increment) + invoked from within +"$z x 1a"}} +test incr-2.31 {incr command (compiled): bad increment} { + list [catch {incr x 1a} msg] $msg $errorInfo +} {1 {expected integer but got "1a"} {expected integer but got "1a" + (reading increment) + invoked from within +"incr x 1a"}} # cleanup ::tcltest::cleanupTests |