summaryrefslogtreecommitdiffstats
path: root/tests/var.test
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2013-02-04 14:30:05 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2013-02-04 14:30:05 (GMT)
commit5e82c1c3bc9f6e0222ba44ec737ef82ea07d6e5e (patch)
treecea0b2ad2d7122a60327096a838abf7327192916 /tests/var.test
parent6f1c949a42ef60692258e34a5dbb8b920d76be23 (diff)
downloadtcl-5e82c1c3bc9f6e0222ba44ec737ef82ea07d6e5e.zip
tcl-5e82c1c3bc9f6e0222ba44ec737ef82ea07d6e5e.tar.gz
tcl-5e82c1c3bc9f6e0222ba44ec737ef82ea07d6e5e.tar.bz2
[3603163]: Prevent odd crashes in 'eval {array set ...}'
Diffstat (limited to 'tests/var.test')
-rw-r--r--tests/var.test69
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/var.test b/tests/var.test
index ed7e930..5939100 100644
--- a/tests/var.test
+++ b/tests/var.test
@@ -793,6 +793,75 @@ test var-19.1 {crash when freeing locals hashtable: Bug 3037525} {
foo ; # This crashes without the fix for the bug
rename foo {}
} {}
+
+test var-20.1 {array set compilation correctness: Bug 3603163} -setup {
+ unset -nocomplain x
+} -body {
+ apply {{} {
+ global x
+ array set x {a 1}
+ }}
+ array size x
+} -result 1
+test var-20.2 {array set compilation correctness: Bug 3603163} -setup {
+ unset -nocomplain x
+} -body {
+ apply {{} {
+ global x
+ array set x {}
+ }}
+ array size x
+} -result 0
+test var-20.3 {array set compilation correctness: Bug 3603163} -setup {
+ unset -nocomplain x
+} -body {
+ apply {{} {
+ array set ::x {a 1}
+ }}
+ array size x
+} -result 1
+test var-20.4 {array set compilation correctness: Bug 3603163} -setup {
+ unset -nocomplain x
+} -body {
+ apply {{} {
+ array set ::x {}
+ }}
+ array size x
+} -result 0
+test var-20.5 {array set compilation correctness: Bug 3603163} -setup {
+ unset -nocomplain x
+} -body {
+ apply {{} {
+ global x
+ eval {array set x {a 1}}
+ }}
+ array size x
+} -result 1
+test var-20.6 {array set compilation correctness: Bug 3603163} -setup {
+ unset -nocomplain x
+} -body {
+ apply {{} {
+ global x
+ eval {array set x {}}
+ }}
+ array size x
+} -result 0
+test var-20.7 {array set compilation correctness: Bug 3603163} -setup {
+ unset -nocomplain x
+} -body {
+ apply {{} {
+ eval {array set ::x {a 1}}
+ }}
+ array size x
+} -result 1
+test var-20.8 {array set compilation correctness: Bug 3603163} -setup {
+ unset -nocomplain x
+} -body {
+ apply {{} {
+ eval {array set ::x {}}
+ }}
+ array size x
+} -result 0
catch {namespace delete ns}
catch {unset arr}