sl@0: # Commands covered: eval sl@0: # sl@0: # This file contains a collection of tests for one or more of the Tcl sl@0: # built-in commands. Sourcing this file into Tcl runs the tests and sl@0: # generates output for errors. No output means no errors were found. sl@0: # sl@0: # Copyright (c) 1991-1993 The Regents of the University of California. sl@0: # Copyright (c) 1994 Sun Microsystems, Inc. sl@0: # Copyright (c) 1998-1999 by Scriptics Corporation. sl@0: # sl@0: # See the file "license.terms" for information on usage and redistribution sl@0: # of this file, and for a DISCLAIMER OF ALL WARRANTIES. sl@0: # sl@0: # RCS: @(#) $Id: eval.test,v 1.5 2000/04/10 17:18:58 ericm Exp $ sl@0: sl@0: if {[lsearch [namespace children] ::tcltest] == -1} { sl@0: package require tcltest sl@0: namespace import -force ::tcltest::* sl@0: } sl@0: sl@0: test eval-1.1 {single argument} { sl@0: eval {format 22} sl@0: } 22 sl@0: test eval-1.2 {multiple arguments} { sl@0: set a {$b} sl@0: set b xyzzy sl@0: eval format $a sl@0: } xyzzy sl@0: test eval-1.3 {single argument} { sl@0: eval concat a b c d e f g sl@0: } {a b c d e f g} sl@0: sl@0: test eval-2.1 {error: not enough arguments} {catch eval} 1 sl@0: test eval-2.2 {error: not enough arguments} { sl@0: catch eval msg sl@0: set msg sl@0: } {wrong # args: should be "eval arg ?arg ...?"} sl@0: test eval-2.3 {error in eval'ed command} { sl@0: catch {eval {error "test error"}} sl@0: } 1 sl@0: test eval-2.4 {error in eval'ed command} { sl@0: catch {eval {error "test error"}} msg sl@0: set msg sl@0: } {test error} sl@0: test eval-2.5 {error in eval'ed command: setting errorInfo} { sl@0: catch {eval { sl@0: set a 1 sl@0: error "test error" sl@0: }} msg sl@0: set errorInfo sl@0: } "test error sl@0: while executing sl@0: \"error \"test error\"\" sl@0: (\"eval\" body line 3) sl@0: invoked from within sl@0: \"eval { sl@0: set a 1 sl@0: error \"test error\" sl@0: }\"" sl@0: sl@0: # cleanup sl@0: ::tcltest::cleanupTests sl@0: return sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: