os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/tests/lsetComp.test
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/tests/lsetComp.test	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,433 @@
     1.4 +# This file is a -*- tcl -*- test script
     1.5 +
     1.6 +# Commands covered: lset
     1.7 +#
     1.8 +# This file contains a collection of tests for one or more of the Tcl
     1.9 +# built-in commands.  Sourcing this file into Tcl runs the tests and
    1.10 +# generates output for errors.  No output means no errors were found.
    1.11 +#
    1.12 +# Copyright (c) 2001 by Kevin B. Kenny.  All rights reserved.
    1.13 +#
    1.14 +# See the file "license.terms" for information on usage and redistribution
    1.15 +# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
    1.16 +#
    1.17 +# RCS: @(#) $Id$
    1.18 +
    1.19 +if {[lsearch [namespace children] ::tcltest] == -1} {
    1.20 +    package require tcltest
    1.21 +    namespace import -force ::tcltest::*
    1.22 +}
    1.23 +
    1.24 +# Procedure to evaluate a script within a proc, to test compilation
    1.25 +# functionality
    1.26 +
    1.27 +proc evalInProc { script } {
    1.28 +    proc testProc {} $script
    1.29 +    set status [catch {
    1.30 +	testProc 
    1.31 +    } result]
    1.32 +    rename testProc {}
    1.33 +    return [list $status $result]
    1.34 +}
    1.35 +
    1.36 +# Tests for the bytecode compilation of the 'lset' command
    1.37 +
    1.38 +test lsetComp-1.1 {lset, compiled, wrong \# args} {
    1.39 +    evalInProc {
    1.40 +	lset
    1.41 +    }
    1.42 +} "1 {wrong \# args: should be \"lset listVar index ?index...? value\"}"
    1.43 +
    1.44 +test lsetComp-2.1 {lset, compiled, list of args, not a simple var name} {
    1.45 +    evalInProc {
    1.46 +	set y x
    1.47 +	set x {{1 2} {3 4}}
    1.48 +	lset $y {1 1} 5
    1.49 +    }
    1.50 +} "0 {{1 2} {3 5}}"
    1.51 +
    1.52 +test lsetComp-2.2 {lset, compiled, list of args, scalar on stack} {
    1.53 +    evalInProc {
    1.54 +	set ::x {{1 2} {3 4}}
    1.55 +	lset ::x {1 1} 5
    1.56 +    }
    1.57 +} "0 {{1 2} {3 5}}"
    1.58 +
    1.59 +test lsetComp-2.3 {lset, compiled, list of args, scalar, one-byte offset} {
    1.60 +    evalInProc {
    1.61 +	set x {{1 2} {3 4}}
    1.62 +	lset x {1 1} 5
    1.63 +    }
    1.64 +} "0 {{1 2} {3 5}}"
    1.65 +
    1.66 +test lsetComp-2.4 {lset, compiled, list of args, scalar, four-byte offset} {
    1.67 +    evalInProc {
    1.68 +	set x0 0; set x1 0; set x2 0; set x3 0; 
    1.69 +	set x4 0; set x5 0; set x6 0; set x7 0; 
    1.70 +	set x8 0; set x9 0; set x10 0; set x11 0; 
    1.71 +	set x12 0; set x13 0; set x14 0; set x15 0; 
    1.72 +	set x16 0; set x17 0; set x18 0; set x19 0; 
    1.73 +	set x20 0; set x21 0; set x22 0; set x23 0; 
    1.74 +	set x24 0; set x25 0; set x26 0; set x27 0; 
    1.75 +	set x28 0; set x29 0; set x30 0; set x31 0; 
    1.76 +	set x32 0; set x33 0; set x34 0; set x35 0; 
    1.77 +	set x36 0; set x37 0; set x38 0; set x39 0; 
    1.78 +	set x40 0; set x41 0; set x42 0; set x43 0; 
    1.79 +	set x44 0; set x45 0; set x46 0; set x47 0; 
    1.80 +	set x48 0; set x49 0; set x50 0; set x51 0; 
    1.81 +	set x52 0; set x53 0; set x54 0; set x55 0; 
    1.82 +	set x56 0; set x57 0; set x58 0; set x59 0; 
    1.83 +	set x60 0; set x61 0; set x62 0; set x63 0; 
    1.84 +	set x64 0; set x65 0; set x66 0; set x67 0; 
    1.85 +	set x68 0; set x69 0; set x70 0; set x71 0; 
    1.86 +	set x72 0; set x73 0; set x74 0; set x75 0; 
    1.87 +	set x76 0; set x77 0; set x78 0; set x79 0; 
    1.88 +	set x80 0; set x81 0; set x82 0; set x83 0; 
    1.89 +	set x84 0; set x85 0; set x86 0; set x87 0; 
    1.90 +	set x88 0; set x89 0; set x90 0; set x91 0; 
    1.91 +	set x92 0; set x93 0; set x94 0; set x95 0; 
    1.92 +	set x96 0; set x97 0; set x98 0; set x99 0; 
    1.93 +	set x100 0; set x101 0; set x102 0; set x103 0; 
    1.94 +	set x104 0; set x105 0; set x106 0; set x107 0; 
    1.95 +	set x108 0; set x109 0; set x110 0; set x111 0; 
    1.96 +	set x112 0; set x113 0; set x114 0; set x115 0; 
    1.97 +	set x116 0; set x117 0; set x118 0; set x119 0; 
    1.98 +	set x120 0; set x121 0; set x122 0; set x123 0; 
    1.99 +	set x124 0; set x125 0; set x126 0; set x127 0; 
   1.100 +	set x128 0; set x129 0; set x130 0; set x131 0; 
   1.101 +	set x132 0; set x133 0; set x134 0; set x135 0; 
   1.102 +	set x136 0; set x137 0; set x138 0; set x139 0; 
   1.103 +	set x140 0; set x141 0; set x142 0; set x143 0; 
   1.104 +	set x144 0; set x145 0; set x146 0; set x147 0; 
   1.105 +	set x148 0; set x149 0; set x150 0; set x151 0; 
   1.106 +	set x152 0; set x153 0; set x154 0; set x155 0; 
   1.107 +	set x156 0; set x157 0; set x158 0; set x159 0; 
   1.108 +	set x160 0; set x161 0; set x162 0; set x163 0; 
   1.109 +	set x164 0; set x165 0; set x166 0; set x167 0; 
   1.110 +	set x168 0; set x169 0; set x170 0; set x171 0; 
   1.111 +	set x172 0; set x173 0; set x174 0; set x175 0; 
   1.112 +	set x176 0; set x177 0; set x178 0; set x179 0; 
   1.113 +	set x180 0; set x181 0; set x182 0; set x183 0; 
   1.114 +	set x184 0; set x185 0; set x186 0; set x187 0; 
   1.115 +	set x188 0; set x189 0; set x190 0; set x191 0; 
   1.116 +	set x192 0; set x193 0; set x194 0; set x195 0; 
   1.117 +	set x196 0; set x197 0; set x198 0; set x199 0; 
   1.118 +	set x200 0; set x201 0; set x202 0; set x203 0; 
   1.119 +	set x204 0; set x205 0; set x206 0; set x207 0; 
   1.120 +	set x208 0; set x209 0; set x210 0; set x211 0; 
   1.121 +	set x212 0; set x213 0; set x214 0; set x215 0; 
   1.122 +	set x216 0; set x217 0; set x218 0; set x219 0; 
   1.123 +	set x220 0; set x221 0; set x222 0; set x223 0; 
   1.124 +	set x224 0; set x225 0; set x226 0; set x227 0; 
   1.125 +	set x228 0; set x229 0; set x230 0; set x231 0; 
   1.126 +	set x232 0; set x233 0; set x234 0; set x235 0; 
   1.127 +	set x236 0; set x237 0; set x238 0; set x239 0; 
   1.128 +	set x240 0; set x241 0; set x242 0; set x243 0; 
   1.129 +	set x244 0; set x245 0; set x246 0; set x247 0; 
   1.130 +	set x248 0; set x249 0; set x250 0; set x251 0; 
   1.131 +	set x252 0; set x253 0; set x254 0; set x255 0;
   1.132 +	set x {{1 2} {3 4}}
   1.133 +	lset x {1 1} 5
   1.134 +    }
   1.135 +} "0 {{1 2} {3 5}}"
   1.136 +
   1.137 +test lsetComp-2.5 {lset, compiled, list of args, array on stack} {
   1.138 +    evalInProc {
   1.139 +	set ::y(0) {{1 2} {3 4}}
   1.140 +	lset ::y(0) {1 1} 5
   1.141 +    }
   1.142 +} "0 {{1 2} {3 5}}"
   1.143 +
   1.144 +test lsetComp-2.6 {lset, compiled, list of args, array, one-byte offset} {
   1.145 +    evalInProc {
   1.146 +	set y(0) {{1 2} {3 4}}
   1.147 +	lset y(0) {1 1} 5
   1.148 +    }
   1.149 +} "0 {{1 2} {3 5}}"
   1.150 +
   1.151 +test lsetComp-2.7 {lset, compiled, list of args, array, four-byte offset} {
   1.152 +    evalInProc {
   1.153 +	set x0 0; set x1 0; set x2 0; set x3 0; 
   1.154 +	set x4 0; set x5 0; set x6 0; set x7 0; 
   1.155 +	set x8 0; set x9 0; set x10 0; set x11 0; 
   1.156 +	set x12 0; set x13 0; set x14 0; set x15 0; 
   1.157 +	set x16 0; set x17 0; set x18 0; set x19 0; 
   1.158 +	set x20 0; set x21 0; set x22 0; set x23 0; 
   1.159 +	set x24 0; set x25 0; set x26 0; set x27 0; 
   1.160 +	set x28 0; set x29 0; set x30 0; set x31 0; 
   1.161 +	set x32 0; set x33 0; set x34 0; set x35 0; 
   1.162 +	set x36 0; set x37 0; set x38 0; set x39 0; 
   1.163 +	set x40 0; set x41 0; set x42 0; set x43 0; 
   1.164 +	set x44 0; set x45 0; set x46 0; set x47 0; 
   1.165 +	set x48 0; set x49 0; set x50 0; set x51 0; 
   1.166 +	set x52 0; set x53 0; set x54 0; set x55 0; 
   1.167 +	set x56 0; set x57 0; set x58 0; set x59 0; 
   1.168 +	set x60 0; set x61 0; set x62 0; set x63 0; 
   1.169 +	set x64 0; set x65 0; set x66 0; set x67 0; 
   1.170 +	set x68 0; set x69 0; set x70 0; set x71 0; 
   1.171 +	set x72 0; set x73 0; set x74 0; set x75 0; 
   1.172 +	set x76 0; set x77 0; set x78 0; set x79 0; 
   1.173 +	set x80 0; set x81 0; set x82 0; set x83 0; 
   1.174 +	set x84 0; set x85 0; set x86 0; set x87 0; 
   1.175 +	set x88 0; set x89 0; set x90 0; set x91 0; 
   1.176 +	set x92 0; set x93 0; set x94 0; set x95 0; 
   1.177 +	set x96 0; set x97 0; set x98 0; set x99 0; 
   1.178 +	set x100 0; set x101 0; set x102 0; set x103 0; 
   1.179 +	set x104 0; set x105 0; set x106 0; set x107 0; 
   1.180 +	set x108 0; set x109 0; set x110 0; set x111 0; 
   1.181 +	set x112 0; set x113 0; set x114 0; set x115 0; 
   1.182 +	set x116 0; set x117 0; set x118 0; set x119 0; 
   1.183 +	set x120 0; set x121 0; set x122 0; set x123 0; 
   1.184 +	set x124 0; set x125 0; set x126 0; set x127 0; 
   1.185 +	set x128 0; set x129 0; set x130 0; set x131 0; 
   1.186 +	set x132 0; set x133 0; set x134 0; set x135 0; 
   1.187 +	set x136 0; set x137 0; set x138 0; set x139 0; 
   1.188 +	set x140 0; set x141 0; set x142 0; set x143 0; 
   1.189 +	set x144 0; set x145 0; set x146 0; set x147 0; 
   1.190 +	set x148 0; set x149 0; set x150 0; set x151 0; 
   1.191 +	set x152 0; set x153 0; set x154 0; set x155 0; 
   1.192 +	set x156 0; set x157 0; set x158 0; set x159 0; 
   1.193 +	set x160 0; set x161 0; set x162 0; set x163 0; 
   1.194 +	set x164 0; set x165 0; set x166 0; set x167 0; 
   1.195 +	set x168 0; set x169 0; set x170 0; set x171 0; 
   1.196 +	set x172 0; set x173 0; set x174 0; set x175 0; 
   1.197 +	set x176 0; set x177 0; set x178 0; set x179 0; 
   1.198 +	set x180 0; set x181 0; set x182 0; set x183 0; 
   1.199 +	set x184 0; set x185 0; set x186 0; set x187 0; 
   1.200 +	set x188 0; set x189 0; set x190 0; set x191 0; 
   1.201 +	set x192 0; set x193 0; set x194 0; set x195 0; 
   1.202 +	set x196 0; set x197 0; set x198 0; set x199 0; 
   1.203 +	set x200 0; set x201 0; set x202 0; set x203 0; 
   1.204 +	set x204 0; set x205 0; set x206 0; set x207 0; 
   1.205 +	set x208 0; set x209 0; set x210 0; set x211 0; 
   1.206 +	set x212 0; set x213 0; set x214 0; set x215 0; 
   1.207 +	set x216 0; set x217 0; set x218 0; set x219 0; 
   1.208 +	set x220 0; set x221 0; set x222 0; set x223 0; 
   1.209 +	set x224 0; set x225 0; set x226 0; set x227 0; 
   1.210 +	set x228 0; set x229 0; set x230 0; set x231 0; 
   1.211 +	set x232 0; set x233 0; set x234 0; set x235 0; 
   1.212 +	set x236 0; set x237 0; set x238 0; set x239 0; 
   1.213 +	set x240 0; set x241 0; set x242 0; set x243 0; 
   1.214 +	set x244 0; set x245 0; set x246 0; set x247 0; 
   1.215 +	set x248 0; set x249 0; set x250 0; set x251 0; 
   1.216 +	set x252 0; set x253 0; set x254 0; set x255 0;
   1.217 +	set y(0) {{1 2} {3 4}}
   1.218 +	lset y(0) {1 1} 5
   1.219 +    }
   1.220 +} "0 {{1 2} {3 5}}"
   1.221 +
   1.222 +test lsetComp-2.8 {lset, compiled, list of args, error } {
   1.223 +    evalInProc {
   1.224 +	set x { {1 2} {3 4} }
   1.225 +	lset x {1 5} 5
   1.226 +    }
   1.227 +} "1 {list index out of range}"
   1.228 +
   1.229 +test lsetComp-2.9 {lset, compiled, list of args, error - is string preserved} {
   1.230 +    set ::x { { 1 2 } { 3 4 } }
   1.231 +    evalInProc {
   1.232 +	lset ::x { 1 5 } 5
   1.233 +    }
   1.234 +    list $::x [lindex $::x 1]
   1.235 +} "{ { 1 2 } { 3 4 } } { 3 4 }"
   1.236 +
   1.237 +test lsetComp-3.1 {lset, compiled, flat args, not a simple var name} {
   1.238 +    evalInProc {
   1.239 +	set y x
   1.240 +	set x {{1 2} {3 4}}
   1.241 +	lset $y 1 1 5
   1.242 +    }
   1.243 +} "0 {{1 2} {3 5}}"
   1.244 +
   1.245 +test lsetComp-3.2 {lset, compiled, flat args, scalar on stack} {
   1.246 +    evalInProc {
   1.247 +	set ::x {{1 2} {3 4}}
   1.248 +	lset ::x 1 1 5
   1.249 +    }
   1.250 +} "0 {{1 2} {3 5}}"
   1.251 +
   1.252 +test lsetComp-3.3 {lset, compiled, flat args, scalar, one-byte offset} {
   1.253 +    evalInProc {
   1.254 +	set x {{1 2} {3 4}}
   1.255 +	lset x 1 1 5
   1.256 +    }
   1.257 +} "0 {{1 2} {3 5}}"
   1.258 +
   1.259 +test lsetComp-3.4 {lset, compiled, scalar, four-byte offset} {
   1.260 +    evalInProc {
   1.261 +	set x0 0; set x1 0; set x2 0; set x3 0; 
   1.262 +	set x4 0; set x5 0; set x6 0; set x7 0; 
   1.263 +	set x8 0; set x9 0; set x10 0; set x11 0; 
   1.264 +	set x12 0; set x13 0; set x14 0; set x15 0; 
   1.265 +	set x16 0; set x17 0; set x18 0; set x19 0; 
   1.266 +	set x20 0; set x21 0; set x22 0; set x23 0; 
   1.267 +	set x24 0; set x25 0; set x26 0; set x27 0; 
   1.268 +	set x28 0; set x29 0; set x30 0; set x31 0; 
   1.269 +	set x32 0; set x33 0; set x34 0; set x35 0; 
   1.270 +	set x36 0; set x37 0; set x38 0; set x39 0; 
   1.271 +	set x40 0; set x41 0; set x42 0; set x43 0; 
   1.272 +	set x44 0; set x45 0; set x46 0; set x47 0; 
   1.273 +	set x48 0; set x49 0; set x50 0; set x51 0; 
   1.274 +	set x52 0; set x53 0; set x54 0; set x55 0; 
   1.275 +	set x56 0; set x57 0; set x58 0; set x59 0; 
   1.276 +	set x60 0; set x61 0; set x62 0; set x63 0; 
   1.277 +	set x64 0; set x65 0; set x66 0; set x67 0; 
   1.278 +	set x68 0; set x69 0; set x70 0; set x71 0; 
   1.279 +	set x72 0; set x73 0; set x74 0; set x75 0; 
   1.280 +	set x76 0; set x77 0; set x78 0; set x79 0; 
   1.281 +	set x80 0; set x81 0; set x82 0; set x83 0; 
   1.282 +	set x84 0; set x85 0; set x86 0; set x87 0; 
   1.283 +	set x88 0; set x89 0; set x90 0; set x91 0; 
   1.284 +	set x92 0; set x93 0; set x94 0; set x95 0; 
   1.285 +	set x96 0; set x97 0; set x98 0; set x99 0; 
   1.286 +	set x100 0; set x101 0; set x102 0; set x103 0; 
   1.287 +	set x104 0; set x105 0; set x106 0; set x107 0; 
   1.288 +	set x108 0; set x109 0; set x110 0; set x111 0; 
   1.289 +	set x112 0; set x113 0; set x114 0; set x115 0; 
   1.290 +	set x116 0; set x117 0; set x118 0; set x119 0; 
   1.291 +	set x120 0; set x121 0; set x122 0; set x123 0; 
   1.292 +	set x124 0; set x125 0; set x126 0; set x127 0; 
   1.293 +	set x128 0; set x129 0; set x130 0; set x131 0; 
   1.294 +	set x132 0; set x133 0; set x134 0; set x135 0; 
   1.295 +	set x136 0; set x137 0; set x138 0; set x139 0; 
   1.296 +	set x140 0; set x141 0; set x142 0; set x143 0; 
   1.297 +	set x144 0; set x145 0; set x146 0; set x147 0; 
   1.298 +	set x148 0; set x149 0; set x150 0; set x151 0; 
   1.299 +	set x152 0; set x153 0; set x154 0; set x155 0; 
   1.300 +	set x156 0; set x157 0; set x158 0; set x159 0; 
   1.301 +	set x160 0; set x161 0; set x162 0; set x163 0; 
   1.302 +	set x164 0; set x165 0; set x166 0; set x167 0; 
   1.303 +	set x168 0; set x169 0; set x170 0; set x171 0; 
   1.304 +	set x172 0; set x173 0; set x174 0; set x175 0; 
   1.305 +	set x176 0; set x177 0; set x178 0; set x179 0; 
   1.306 +	set x180 0; set x181 0; set x182 0; set x183 0; 
   1.307 +	set x184 0; set x185 0; set x186 0; set x187 0; 
   1.308 +	set x188 0; set x189 0; set x190 0; set x191 0; 
   1.309 +	set x192 0; set x193 0; set x194 0; set x195 0; 
   1.310 +	set x196 0; set x197 0; set x198 0; set x199 0; 
   1.311 +	set x200 0; set x201 0; set x202 0; set x203 0; 
   1.312 +	set x204 0; set x205 0; set x206 0; set x207 0; 
   1.313 +	set x208 0; set x209 0; set x210 0; set x211 0; 
   1.314 +	set x212 0; set x213 0; set x214 0; set x215 0; 
   1.315 +	set x216 0; set x217 0; set x218 0; set x219 0; 
   1.316 +	set x220 0; set x221 0; set x222 0; set x223 0; 
   1.317 +	set x224 0; set x225 0; set x226 0; set x227 0; 
   1.318 +	set x228 0; set x229 0; set x230 0; set x231 0; 
   1.319 +	set x232 0; set x233 0; set x234 0; set x235 0; 
   1.320 +	set x236 0; set x237 0; set x238 0; set x239 0; 
   1.321 +	set x240 0; set x241 0; set x242 0; set x243 0; 
   1.322 +	set x244 0; set x245 0; set x246 0; set x247 0; 
   1.323 +	set x248 0; set x249 0; set x250 0; set x251 0; 
   1.324 +	set x252 0; set x253 0; set x254 0; set x255 0;
   1.325 +	set x {{1 2} {3 4}}
   1.326 +	lset x 1 1 5
   1.327 +    }
   1.328 +} "0 {{1 2} {3 5}}"
   1.329 +
   1.330 +test lsetComp-3.5 {lset, compiled, flat args, array on stack} {
   1.331 +    evalInProc {
   1.332 +	set ::y(0) {{1 2} {3 4}}
   1.333 +	lset ::y(0) 1 1 5
   1.334 +    }
   1.335 +} "0 {{1 2} {3 5}}"
   1.336 +
   1.337 +test lsetComp-3.6 {lset, compiled, flat args, array, one-byte offset} {
   1.338 +    evalInProc {
   1.339 +	set y(0) {{1 2} {3 4}}
   1.340 +	lset y(0) 1 1 5
   1.341 +    }
   1.342 +} "0 {{1 2} {3 5}}"
   1.343 +
   1.344 +test lsetComp-3.7 {lset, compiled, flat args, array, four-byte offset} {
   1.345 +    evalInProc {
   1.346 +	set x0 0; set x1 0; set x2 0; set x3 0; 
   1.347 +	set x4 0; set x5 0; set x6 0; set x7 0; 
   1.348 +	set x8 0; set x9 0; set x10 0; set x11 0; 
   1.349 +	set x12 0; set x13 0; set x14 0; set x15 0; 
   1.350 +	set x16 0; set x17 0; set x18 0; set x19 0; 
   1.351 +	set x20 0; set x21 0; set x22 0; set x23 0; 
   1.352 +	set x24 0; set x25 0; set x26 0; set x27 0; 
   1.353 +	set x28 0; set x29 0; set x30 0; set x31 0; 
   1.354 +	set x32 0; set x33 0; set x34 0; set x35 0; 
   1.355 +	set x36 0; set x37 0; set x38 0; set x39 0; 
   1.356 +	set x40 0; set x41 0; set x42 0; set x43 0; 
   1.357 +	set x44 0; set x45 0; set x46 0; set x47 0; 
   1.358 +	set x48 0; set x49 0; set x50 0; set x51 0; 
   1.359 +	set x52 0; set x53 0; set x54 0; set x55 0; 
   1.360 +	set x56 0; set x57 0; set x58 0; set x59 0; 
   1.361 +	set x60 0; set x61 0; set x62 0; set x63 0; 
   1.362 +	set x64 0; set x65 0; set x66 0; set x67 0; 
   1.363 +	set x68 0; set x69 0; set x70 0; set x71 0; 
   1.364 +	set x72 0; set x73 0; set x74 0; set x75 0; 
   1.365 +	set x76 0; set x77 0; set x78 0; set x79 0; 
   1.366 +	set x80 0; set x81 0; set x82 0; set x83 0; 
   1.367 +	set x84 0; set x85 0; set x86 0; set x87 0; 
   1.368 +	set x88 0; set x89 0; set x90 0; set x91 0; 
   1.369 +	set x92 0; set x93 0; set x94 0; set x95 0; 
   1.370 +	set x96 0; set x97 0; set x98 0; set x99 0; 
   1.371 +	set x100 0; set x101 0; set x102 0; set x103 0; 
   1.372 +	set x104 0; set x105 0; set x106 0; set x107 0; 
   1.373 +	set x108 0; set x109 0; set x110 0; set x111 0; 
   1.374 +	set x112 0; set x113 0; set x114 0; set x115 0; 
   1.375 +	set x116 0; set x117 0; set x118 0; set x119 0; 
   1.376 +	set x120 0; set x121 0; set x122 0; set x123 0; 
   1.377 +	set x124 0; set x125 0; set x126 0; set x127 0; 
   1.378 +	set x128 0; set x129 0; set x130 0; set x131 0; 
   1.379 +	set x132 0; set x133 0; set x134 0; set x135 0; 
   1.380 +	set x136 0; set x137 0; set x138 0; set x139 0; 
   1.381 +	set x140 0; set x141 0; set x142 0; set x143 0; 
   1.382 +	set x144 0; set x145 0; set x146 0; set x147 0; 
   1.383 +	set x148 0; set x149 0; set x150 0; set x151 0; 
   1.384 +	set x152 0; set x153 0; set x154 0; set x155 0; 
   1.385 +	set x156 0; set x157 0; set x158 0; set x159 0; 
   1.386 +	set x160 0; set x161 0; set x162 0; set x163 0; 
   1.387 +	set x164 0; set x165 0; set x166 0; set x167 0; 
   1.388 +	set x168 0; set x169 0; set x170 0; set x171 0; 
   1.389 +	set x172 0; set x173 0; set x174 0; set x175 0; 
   1.390 +	set x176 0; set x177 0; set x178 0; set x179 0; 
   1.391 +	set x180 0; set x181 0; set x182 0; set x183 0; 
   1.392 +	set x184 0; set x185 0; set x186 0; set x187 0; 
   1.393 +	set x188 0; set x189 0; set x190 0; set x191 0; 
   1.394 +	set x192 0; set x193 0; set x194 0; set x195 0; 
   1.395 +	set x196 0; set x197 0; set x198 0; set x199 0; 
   1.396 +	set x200 0; set x201 0; set x202 0; set x203 0; 
   1.397 +	set x204 0; set x205 0; set x206 0; set x207 0; 
   1.398 +	set x208 0; set x209 0; set x210 0; set x211 0; 
   1.399 +	set x212 0; set x213 0; set x214 0; set x215 0; 
   1.400 +	set x216 0; set x217 0; set x218 0; set x219 0; 
   1.401 +	set x220 0; set x221 0; set x222 0; set x223 0; 
   1.402 +	set x224 0; set x225 0; set x226 0; set x227 0; 
   1.403 +	set x228 0; set x229 0; set x230 0; set x231 0; 
   1.404 +	set x232 0; set x233 0; set x234 0; set x235 0; 
   1.405 +	set x236 0; set x237 0; set x238 0; set x239 0; 
   1.406 +	set x240 0; set x241 0; set x242 0; set x243 0; 
   1.407 +	set x244 0; set x245 0; set x246 0; set x247 0; 
   1.408 +	set x248 0; set x249 0; set x250 0; set x251 0; 
   1.409 +	set x252 0; set x253 0; set x254 0; set x255 0;
   1.410 +	set y(0) {{1 2} {3 4}}
   1.411 +	lset y(0) 1 1 5
   1.412 +    }
   1.413 +} "0 {{1 2} {3 5}}"
   1.414 +
   1.415 +test lsetComp-3.8 {lset, compiled, flat args, error } {
   1.416 +    evalInProc {
   1.417 +	set x { {1 2} {3 4} }
   1.418 +	lset x 1 5 5
   1.419 +    }
   1.420 +} "1 {list index out of range}"
   1.421 +
   1.422 +test lsetComp-3.9 {lset, compiled, flat args, error - is string preserved} {
   1.423 +    set ::x { { 1 2 } { 3 4 } }
   1.424 +    evalInProc {
   1.425 +	lset ::x 1 5 5
   1.426 +    }
   1.427 +    list $::x [lindex $::x 1]
   1.428 +} "{ { 1 2 } { 3 4 } } { 3 4 }"
   1.429 +
   1.430 +catch { rename evalInProc {} }
   1.431 +catch { unset ::x }
   1.432 +catch { unset ::y }
   1.433 +
   1.434 +# cleanup
   1.435 +::tcltest::cleanupTests
   1.436 +return