summaryrefslogtreecommitdiffstats
path: root/tests/compExpr.test
diff options
context:
space:
mode:
Diffstat (limited to 'tests/compExpr.test')
-rw-r--r--tests/compExpr.test30
1 files changed, 17 insertions, 13 deletions
diff --git a/tests/compExpr.test b/tests/compExpr.test
index 819ceca..f2c7ffc 100644
--- a/tests/compExpr.test
+++ b/tests/compExpr.test
@@ -8,13 +8,17 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: compExpr.test,v 1.11 2006/04/06 18:19:25 dgp Exp $
+# RCS: @(#) $Id: compExpr.test,v 1.12 2006/08/02 20:03:37 das Exp $
if {[lsearch [namespace children] ::tcltest] == -1} {
package require tcltest
namespace import -force ::tcltest::*
}
+# Constraint set on tests that depend on the exact format of the error messages
+# of the pre-2006/07/05 expression parser (-DOLD_EXPR_PARSER=1)
+testConstraint oldExprParser [expr {![testConstraint newExprParser]}]
+
if {[catch {expr T1()} msg] && $msg eq {invalid command name "tcl::mathfunc::T1"}} {
testConstraint testmathfunctions 0
} else {
@@ -26,7 +30,7 @@ catch {unset a}
test compExpr-1.1 {TclCompileExpr procedure, successful expr parse and compile} {
expr 1+2
} 3
-test compExpr-1.2 {TclCompileExpr procedure, error parsing expr} {
+test compExpr-1.2 {TclCompileExpr procedure, error parsing expr} {oldExprParser} {
list [catch {expr 1+2+} msg] $msg
} {1 {syntax error in expression "1+2+": premature end of expression}}
test compExpr-1.3 {TclCompileExpr procedure, error compiling expr} -body {
@@ -43,7 +47,7 @@ test compExpr-2.1 {CompileSubExpr procedure, TCL_TOKEN_WORD parse token} {
set a 27
expr {"foo$a" < "bar"}
} 0
-test compExpr-2.2 {CompileSubExpr procedure, error compiling TCL_TOKEN_WORD parse token} {
+test compExpr-2.2 {CompileSubExpr procedure, error compiling TCL_TOKEN_WORD parse token} {oldExprParser} {
list [catch {expr {"00[expr 1+]" + 17}} msg] $msg
} {1 {syntax error in expression "1+": premature end of expression}}
test compExpr-2.3 {CompileSubExpr procedure, TCL_TOKEN_TEXT parse token} {
@@ -62,7 +66,7 @@ test compExpr-2.6 {CompileSubExpr procedure, TCL_TOKEN_COMMAND parse token} {
test compExpr-2.7 {CompileSubExpr procedure, TCL_TOKEN_COMMAND parse token} {
expr {[]}
} {}
-test compExpr-2.8 {CompileSubExpr procedure, error in TCL_TOKEN_COMMAND parse token} {
+test compExpr-2.8 {CompileSubExpr procedure, error in TCL_TOKEN_COMMAND parse token} {oldExprParser} {
list [catch {expr {[foo "bar"xxx] + 17}} msg] $msg
} {1 {extra characters after close-quote}}
test compExpr-2.9 {CompileSubExpr procedure, TCL_TOKEN_VARIABLE parse token} {
@@ -154,16 +158,16 @@ test compExpr-2.33 {CompileSubExpr procedure, TCL_TOKEN_OPERATOR token, normal o
test compExpr-2.34 {CompileSubExpr procedure, TCL_TOKEN_OPERATOR token, special operator} {
expr {+2}
} 2
-test compExpr-2.35 {CompileSubExpr procedure, TCL_TOKEN_OPERATOR token, error in special operator} {
+test compExpr-2.35 {CompileSubExpr procedure, TCL_TOKEN_OPERATOR token, error in special operator} {oldExprParser} {
list [catch {expr {+[expr 1+]}} msg] $msg
} {1 {syntax error in expression "1+": premature end of expression}}
test compExpr-2.36 {CompileSubExpr procedure, TCL_TOKEN_OPERATOR token, special operator} {
expr {4+2}
} 6
-test compExpr-2.37 {CompileSubExpr procedure, TCL_TOKEN_OPERATOR token, error in special operator} {
+test compExpr-2.37 {CompileSubExpr procedure, TCL_TOKEN_OPERATOR token, error in special operator} {oldExprParser} {
list [catch {expr {[expr 1+]+5}} msg] $msg
} {1 {syntax error in expression "1+": premature end of expression}}
-test compExpr-2.38 {CompileSubExpr procedure, TCL_TOKEN_OPERATOR token, error in special operator} {
+test compExpr-2.38 {CompileSubExpr procedure, TCL_TOKEN_OPERATOR token, error in special operator} {oldExprParser} {
list [catch {expr {5+[expr 1+]}} msg] $msg
} {1 {syntax error in expression "1+": premature end of expression}}
test compExpr-2.39 {CompileSubExpr procedure, TCL_TOKEN_OPERATOR token, special operator} {
@@ -208,7 +212,7 @@ test compExpr-3.2 {CompileLandOrLorExpr procedure, nonnumeric 1st operand} {
set a no
expr {$a&&1}
} 0
-test compExpr-3.3 {CompileSubExpr procedure, error in 1st operand} {
+test compExpr-3.3 {CompileSubExpr procedure, error in 1st operand} {oldExprParser} {
list [catch {expr {[expr *2]||0}} msg] $msg
} {1 {syntax error in expression "*2": unexpected operator *}}
test compExpr-3.4 {CompileLandOrLorExpr procedure, result is 1 or 0} {
@@ -238,7 +242,7 @@ test compExpr-3.8 {CompileLandOrLorExpr procedure, nonnumeric 2nd operand} {
set a no
expr {1&&$a}
} 0
-test compExpr-3.9 {CompileLandOrLorExpr procedure, error in 2nd operand} {
+test compExpr-3.9 {CompileLandOrLorExpr procedure, error in 2nd operand} {oldExprParser} {
list [catch {expr {0||[expr %2]}} msg] $msg
} {1 {syntax error in expression "%2": unexpected operator %}}
test compExpr-3.10 {CompileLandOrLorExpr procedure, long lor/land arm} {
@@ -257,7 +261,7 @@ test compExpr-4.2 {CompileCondExpr procedure, complex test, convert to numeric}
set a no
expr {[set a]? 27 : -54}
} -54
-test compExpr-4.3 {CompileCondExpr procedure, error in test} {
+test compExpr-4.3 {CompileCondExpr procedure, error in test} {oldExprParser} {
list [catch {expr {[expr *2]? +1 : -1}} msg] $msg
} {1 {syntax error in expression "*2": unexpected operator *}}
test compExpr-4.4 {CompileCondExpr procedure, simple "true" clause} {
@@ -270,7 +274,7 @@ test compExpr-4.5 {CompileCondExpr procedure, convert "true" clause to numeric}
set a no
expr {1? $a : -54}
} no
-test compExpr-4.6 {CompileCondExpr procedure, error in "true" clause} {
+test compExpr-4.6 {CompileCondExpr procedure, error in "true" clause} {oldExprParser} {
list [catch {expr {1? [expr *2] : -127}} msg] $msg
} {1 {syntax error in expression "*2": unexpected operator *}}
test compExpr-4.7 {CompileCondExpr procedure, simple "false" clause} {
@@ -305,7 +309,7 @@ test compExpr-5.5 {CompileMathFuncCall procedure, too few arguments} -body {
test compExpr-5.6 {CompileMathFuncCall procedure, complex argument} {
format %.6g [expr pow(2.1, 27.5-(24.4*(5%2)))]
} 9.97424
-test compExpr-5.7 {CompileMathFuncCall procedure, error in argument} {
+test compExpr-5.7 {CompileMathFuncCall procedure, error in argument} {oldExprParser} {
list [catch {expr {sinh(2.*)}} msg] $msg
} {1 {syntax error in expression "sinh(2.*)": unexpected close parenthesis}}
test compExpr-5.8 {CompileMathFuncCall procedure, too many arguments} -body {
@@ -315,7 +319,7 @@ test compExpr-5.9 {CompileMathFuncCall procedure, too many arguments} -body {
list [catch {expr {0 <= rand(5.2)}} msg] $msg
} -match glob -result {1 {too many arguments for math function*}}
-test compExpr-6.1 {LogSyntaxError procedure, error in expr longer than 60 chars} {
+test compExpr-6.1 {LogSyntaxError procedure, error in expr longer than 60 chars} {oldExprParser} {
list [catch {expr {(+0123456)*(+0123456)*(+0123456)*(+0123456)*(+0123456)*(+0123456)*(+0123456)/} -1 foo 3} msg] $msg
} {1 {syntax error in expression "(+0123456)*(+0123456)*(+0123456)*(+0123456)*(+0123456)*(+012...": extra tokens at end of expression}}