58 lines
1.2 KiB
Plaintext
58 lines
1.2 KiB
Plaintext
source [file dirname [info script]]/testing.tcl
|
|
|
|
needs constraint jim
|
|
|
|
# Test the expr-sugar syntax: $(...)
|
|
|
|
test exprsugar-1.1 {Simple operations} {
|
|
set x $(2)
|
|
} 2
|
|
test exprsugar-1.2 {Simple operations} {
|
|
set x $(-3)
|
|
} -3
|
|
test exprsugar-1.3 {Simple operations} {
|
|
set x $(!0)
|
|
} 1
|
|
test exprsugar-1.4 {Simple operations} {
|
|
set a 3
|
|
set x $($a)
|
|
} 3
|
|
test exprsugar-1.5 {Simple operations} {
|
|
set x $($a + 4)
|
|
} 7
|
|
test exprsugar-1.6 {Simple operations} {
|
|
set x $(6 * 7 + 2)
|
|
} 44
|
|
test exprsugar-1.7 {Simple operations} {
|
|
set a bb
|
|
set x $($a in {aa bb cc})
|
|
} 1
|
|
test exprsugar-1.8 {Simple operations} {
|
|
set a 1
|
|
set x $($a ? "yes" : "no")
|
|
} yes
|
|
test exprsugar-1.9 {Simple operations} {
|
|
set a 1
|
|
set x $([incr a])
|
|
list $a $x
|
|
} {2 2}
|
|
# expr sugar inside an expression is an error
|
|
test exprsugar-1.10 {Simple operations} {
|
|
catch {set x $(1 + $(5 * 7))}
|
|
} 1
|
|
test exprsugar-1.11 {Simple operations} {
|
|
unset a
|
|
set a(b) 3
|
|
set x $(2 + $a(b))
|
|
} 5
|
|
test exprsugar-1.12 {Simple operations} {
|
|
set x $((2 + 4))
|
|
} 6
|
|
# This necessary to ensure that things like exit will pass through expr-sugar
|
|
test exprsugar-1.13 {Non-error return inside expr-sugar} -body {
|
|
proc a {} { break }
|
|
set x $([a])
|
|
} -returnCodes break
|
|
|
|
testreport
|