diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2013-02-04 14:30:05 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2013-02-04 14:30:05 (GMT) |
commit | 5e82c1c3bc9f6e0222ba44ec737ef82ea07d6e5e (patch) | |
tree | cea0b2ad2d7122a60327096a838abf7327192916 /tests/var.test | |
parent | 6f1c949a42ef60692258e34a5dbb8b920d76be23 (diff) | |
download | tcl-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.test | 69 |
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} |