summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/dict.test37
1 files changed, 36 insertions, 1 deletions
diff --git a/tests/dict.test b/tests/dict.test
index f6c11d7..090142e 100644
--- a/tests/dict.test
+++ b/tests/dict.test
@@ -9,7 +9,7 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: dict.test,v 1.12 2004/10/19 22:20:05 dkf Exp $
+# RCS: @(#) $Id: dict.test,v 1.13 2005/07/21 21:49:08 dkf Exp $
if {[lsearch [namespace children] ::tcltest] == -1} {
package require tcltest 2
@@ -306,6 +306,17 @@ test dict-11.15 {dict incr command: write failure} {
catch {unset dictVar}
set result
} {1 {can't set "dictVar": variable is array}}
+test dict-11.16 {dict incr command: compilation} {
+ proc dicttest {} {
+ set v {a 0 b 0 c 0}
+ dict incr v a
+ dict incr v b 1
+ dict incr v c 2
+ dict incr v d 3
+ list [dict get $v a] [dict get $v b] [dict get $v c] [dict get $v d]
+ }
+ dicttest
+} {1 1 2 3}
test dict-12.1 {dict lappend command} {
set dictv {a a}
@@ -511,6 +522,17 @@ test dict-14.15 {dict for command: keys are unique and iterated over once only}
catch {unset accum}
set result
} {a1 a2 b1 b2 bar foo : a, b, c, d, foo, bar,}
+test dict-14.16 {dict for command in compilation context} {
+ proc dicttest {} {
+ set res {x x x x x x}
+ dict for {k v} {a 0 b 1 c 2 d 3 e 4 f 5} {
+ lset res $v $k
+ continue
+ }
+ return $res
+ }
+ dicttest
+} {a b c d e f}
# There's probably a lot more tests to add here. Really ought to use
# a coverage tool for this job...
@@ -968,6 +990,19 @@ test dict-21.12 {dict update command} {
}
getOrder $a b d f
} {b c d e f g 3}
+test dict-21.13 {dict update command: compilation} {
+ proc dicttest {d} {
+ while 1 {
+ dict update d a alpha b beta {
+ set beta $alpha
+ unset alpha
+ break
+ }
+ }
+ return $d
+ }
+ getOrder [dicttest {a 1 c 2}] b c
+} {b 1 c 2 2}
test dict-22.1 {dict with command} -body {
dict with