os/persistentdata/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/tests/lsetComp.test
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     1 # This file is a -*- tcl -*- test script
     2 
     3 # Commands covered: lset
     4 #
     5 # This file contains a collection of tests for one or more of the Tcl
     6 # built-in commands.  Sourcing this file into Tcl runs the tests and
     7 # generates output for errors.  No output means no errors were found.
     8 #
     9 # Copyright (c) 2001 by Kevin B. Kenny.  All rights reserved.
    10 #
    11 # See the file "license.terms" for information on usage and redistribution
    12 # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
    13 #
    14 # RCS: @(#) $Id$
    15 
    16 if {[lsearch [namespace children] ::tcltest] == -1} {
    17     package require tcltest
    18     namespace import -force ::tcltest::*
    19 }
    20 
    21 # Procedure to evaluate a script within a proc, to test compilation
    22 # functionality
    23 
    24 proc evalInProc { script } {
    25     proc testProc {} $script
    26     set status [catch {
    27 	testProc 
    28     } result]
    29     rename testProc {}
    30     return [list $status $result]
    31 }
    32 
    33 # Tests for the bytecode compilation of the 'lset' command
    34 
    35 test lsetComp-1.1 {lset, compiled, wrong \# args} {
    36     evalInProc {
    37 	lset
    38     }
    39 } "1 {wrong \# args: should be \"lset listVar index ?index...? value\"}"
    40 
    41 test lsetComp-2.1 {lset, compiled, list of args, not a simple var name} {
    42     evalInProc {
    43 	set y x
    44 	set x {{1 2} {3 4}}
    45 	lset $y {1 1} 5
    46     }
    47 } "0 {{1 2} {3 5}}"
    48 
    49 test lsetComp-2.2 {lset, compiled, list of args, scalar on stack} {
    50     evalInProc {
    51 	set ::x {{1 2} {3 4}}
    52 	lset ::x {1 1} 5
    53     }
    54 } "0 {{1 2} {3 5}}"
    55 
    56 test lsetComp-2.3 {lset, compiled, list of args, scalar, one-byte offset} {
    57     evalInProc {
    58 	set x {{1 2} {3 4}}
    59 	lset x {1 1} 5
    60     }
    61 } "0 {{1 2} {3 5}}"
    62 
    63 test lsetComp-2.4 {lset, compiled, list of args, scalar, four-byte offset} {
    64     evalInProc {
    65 	set x0 0; set x1 0; set x2 0; set x3 0; 
    66 	set x4 0; set x5 0; set x6 0; set x7 0; 
    67 	set x8 0; set x9 0; set x10 0; set x11 0; 
    68 	set x12 0; set x13 0; set x14 0; set x15 0; 
    69 	set x16 0; set x17 0; set x18 0; set x19 0; 
    70 	set x20 0; set x21 0; set x22 0; set x23 0; 
    71 	set x24 0; set x25 0; set x26 0; set x27 0; 
    72 	set x28 0; set x29 0; set x30 0; set x31 0; 
    73 	set x32 0; set x33 0; set x34 0; set x35 0; 
    74 	set x36 0; set x37 0; set x38 0; set x39 0; 
    75 	set x40 0; set x41 0; set x42 0; set x43 0; 
    76 	set x44 0; set x45 0; set x46 0; set x47 0; 
    77 	set x48 0; set x49 0; set x50 0; set x51 0; 
    78 	set x52 0; set x53 0; set x54 0; set x55 0; 
    79 	set x56 0; set x57 0; set x58 0; set x59 0; 
    80 	set x60 0; set x61 0; set x62 0; set x63 0; 
    81 	set x64 0; set x65 0; set x66 0; set x67 0; 
    82 	set x68 0; set x69 0; set x70 0; set x71 0; 
    83 	set x72 0; set x73 0; set x74 0; set x75 0; 
    84 	set x76 0; set x77 0; set x78 0; set x79 0; 
    85 	set x80 0; set x81 0; set x82 0; set x83 0; 
    86 	set x84 0; set x85 0; set x86 0; set x87 0; 
    87 	set x88 0; set x89 0; set x90 0; set x91 0; 
    88 	set x92 0; set x93 0; set x94 0; set x95 0; 
    89 	set x96 0; set x97 0; set x98 0; set x99 0; 
    90 	set x100 0; set x101 0; set x102 0; set x103 0; 
    91 	set x104 0; set x105 0; set x106 0; set x107 0; 
    92 	set x108 0; set x109 0; set x110 0; set x111 0; 
    93 	set x112 0; set x113 0; set x114 0; set x115 0; 
    94 	set x116 0; set x117 0; set x118 0; set x119 0; 
    95 	set x120 0; set x121 0; set x122 0; set x123 0; 
    96 	set x124 0; set x125 0; set x126 0; set x127 0; 
    97 	set x128 0; set x129 0; set x130 0; set x131 0; 
    98 	set x132 0; set x133 0; set x134 0; set x135 0; 
    99 	set x136 0; set x137 0; set x138 0; set x139 0; 
   100 	set x140 0; set x141 0; set x142 0; set x143 0; 
   101 	set x144 0; set x145 0; set x146 0; set x147 0; 
   102 	set x148 0; set x149 0; set x150 0; set x151 0; 
   103 	set x152 0; set x153 0; set x154 0; set x155 0; 
   104 	set x156 0; set x157 0; set x158 0; set x159 0; 
   105 	set x160 0; set x161 0; set x162 0; set x163 0; 
   106 	set x164 0; set x165 0; set x166 0; set x167 0; 
   107 	set x168 0; set x169 0; set x170 0; set x171 0; 
   108 	set x172 0; set x173 0; set x174 0; set x175 0; 
   109 	set x176 0; set x177 0; set x178 0; set x179 0; 
   110 	set x180 0; set x181 0; set x182 0; set x183 0; 
   111 	set x184 0; set x185 0; set x186 0; set x187 0; 
   112 	set x188 0; set x189 0; set x190 0; set x191 0; 
   113 	set x192 0; set x193 0; set x194 0; set x195 0; 
   114 	set x196 0; set x197 0; set x198 0; set x199 0; 
   115 	set x200 0; set x201 0; set x202 0; set x203 0; 
   116 	set x204 0; set x205 0; set x206 0; set x207 0; 
   117 	set x208 0; set x209 0; set x210 0; set x211 0; 
   118 	set x212 0; set x213 0; set x214 0; set x215 0; 
   119 	set x216 0; set x217 0; set x218 0; set x219 0; 
   120 	set x220 0; set x221 0; set x222 0; set x223 0; 
   121 	set x224 0; set x225 0; set x226 0; set x227 0; 
   122 	set x228 0; set x229 0; set x230 0; set x231 0; 
   123 	set x232 0; set x233 0; set x234 0; set x235 0; 
   124 	set x236 0; set x237 0; set x238 0; set x239 0; 
   125 	set x240 0; set x241 0; set x242 0; set x243 0; 
   126 	set x244 0; set x245 0; set x246 0; set x247 0; 
   127 	set x248 0; set x249 0; set x250 0; set x251 0; 
   128 	set x252 0; set x253 0; set x254 0; set x255 0;
   129 	set x {{1 2} {3 4}}
   130 	lset x {1 1} 5
   131     }
   132 } "0 {{1 2} {3 5}}"
   133 
   134 test lsetComp-2.5 {lset, compiled, list of args, array on stack} {
   135     evalInProc {
   136 	set ::y(0) {{1 2} {3 4}}
   137 	lset ::y(0) {1 1} 5
   138     }
   139 } "0 {{1 2} {3 5}}"
   140 
   141 test lsetComp-2.6 {lset, compiled, list of args, array, one-byte offset} {
   142     evalInProc {
   143 	set y(0) {{1 2} {3 4}}
   144 	lset y(0) {1 1} 5
   145     }
   146 } "0 {{1 2} {3 5}}"
   147 
   148 test lsetComp-2.7 {lset, compiled, list of args, array, four-byte offset} {
   149     evalInProc {
   150 	set x0 0; set x1 0; set x2 0; set x3 0; 
   151 	set x4 0; set x5 0; set x6 0; set x7 0; 
   152 	set x8 0; set x9 0; set x10 0; set x11 0; 
   153 	set x12 0; set x13 0; set x14 0; set x15 0; 
   154 	set x16 0; set x17 0; set x18 0; set x19 0; 
   155 	set x20 0; set x21 0; set x22 0; set x23 0; 
   156 	set x24 0; set x25 0; set x26 0; set x27 0; 
   157 	set x28 0; set x29 0; set x30 0; set x31 0; 
   158 	set x32 0; set x33 0; set x34 0; set x35 0; 
   159 	set x36 0; set x37 0; set x38 0; set x39 0; 
   160 	set x40 0; set x41 0; set x42 0; set x43 0; 
   161 	set x44 0; set x45 0; set x46 0; set x47 0; 
   162 	set x48 0; set x49 0; set x50 0; set x51 0; 
   163 	set x52 0; set x53 0; set x54 0; set x55 0; 
   164 	set x56 0; set x57 0; set x58 0; set x59 0; 
   165 	set x60 0; set x61 0; set x62 0; set x63 0; 
   166 	set x64 0; set x65 0; set x66 0; set x67 0; 
   167 	set x68 0; set x69 0; set x70 0; set x71 0; 
   168 	set x72 0; set x73 0; set x74 0; set x75 0; 
   169 	set x76 0; set x77 0; set x78 0; set x79 0; 
   170 	set x80 0; set x81 0; set x82 0; set x83 0; 
   171 	set x84 0; set x85 0; set x86 0; set x87 0; 
   172 	set x88 0; set x89 0; set x90 0; set x91 0; 
   173 	set x92 0; set x93 0; set x94 0; set x95 0; 
   174 	set x96 0; set x97 0; set x98 0; set x99 0; 
   175 	set x100 0; set x101 0; set x102 0; set x103 0; 
   176 	set x104 0; set x105 0; set x106 0; set x107 0; 
   177 	set x108 0; set x109 0; set x110 0; set x111 0; 
   178 	set x112 0; set x113 0; set x114 0; set x115 0; 
   179 	set x116 0; set x117 0; set x118 0; set x119 0; 
   180 	set x120 0; set x121 0; set x122 0; set x123 0; 
   181 	set x124 0; set x125 0; set x126 0; set x127 0; 
   182 	set x128 0; set x129 0; set x130 0; set x131 0; 
   183 	set x132 0; set x133 0; set x134 0; set x135 0; 
   184 	set x136 0; set x137 0; set x138 0; set x139 0; 
   185 	set x140 0; set x141 0; set x142 0; set x143 0; 
   186 	set x144 0; set x145 0; set x146 0; set x147 0; 
   187 	set x148 0; set x149 0; set x150 0; set x151 0; 
   188 	set x152 0; set x153 0; set x154 0; set x155 0; 
   189 	set x156 0; set x157 0; set x158 0; set x159 0; 
   190 	set x160 0; set x161 0; set x162 0; set x163 0; 
   191 	set x164 0; set x165 0; set x166 0; set x167 0; 
   192 	set x168 0; set x169 0; set x170 0; set x171 0; 
   193 	set x172 0; set x173 0; set x174 0; set x175 0; 
   194 	set x176 0; set x177 0; set x178 0; set x179 0; 
   195 	set x180 0; set x181 0; set x182 0; set x183 0; 
   196 	set x184 0; set x185 0; set x186 0; set x187 0; 
   197 	set x188 0; set x189 0; set x190 0; set x191 0; 
   198 	set x192 0; set x193 0; set x194 0; set x195 0; 
   199 	set x196 0; set x197 0; set x198 0; set x199 0; 
   200 	set x200 0; set x201 0; set x202 0; set x203 0; 
   201 	set x204 0; set x205 0; set x206 0; set x207 0; 
   202 	set x208 0; set x209 0; set x210 0; set x211 0; 
   203 	set x212 0; set x213 0; set x214 0; set x215 0; 
   204 	set x216 0; set x217 0; set x218 0; set x219 0; 
   205 	set x220 0; set x221 0; set x222 0; set x223 0; 
   206 	set x224 0; set x225 0; set x226 0; set x227 0; 
   207 	set x228 0; set x229 0; set x230 0; set x231 0; 
   208 	set x232 0; set x233 0; set x234 0; set x235 0; 
   209 	set x236 0; set x237 0; set x238 0; set x239 0; 
   210 	set x240 0; set x241 0; set x242 0; set x243 0; 
   211 	set x244 0; set x245 0; set x246 0; set x247 0; 
   212 	set x248 0; set x249 0; set x250 0; set x251 0; 
   213 	set x252 0; set x253 0; set x254 0; set x255 0;
   214 	set y(0) {{1 2} {3 4}}
   215 	lset y(0) {1 1} 5
   216     }
   217 } "0 {{1 2} {3 5}}"
   218 
   219 test lsetComp-2.8 {lset, compiled, list of args, error } {
   220     evalInProc {
   221 	set x { {1 2} {3 4} }
   222 	lset x {1 5} 5
   223     }
   224 } "1 {list index out of range}"
   225 
   226 test lsetComp-2.9 {lset, compiled, list of args, error - is string preserved} {
   227     set ::x { { 1 2 } { 3 4 } }
   228     evalInProc {
   229 	lset ::x { 1 5 } 5
   230     }
   231     list $::x [lindex $::x 1]
   232 } "{ { 1 2 } { 3 4 } } { 3 4 }"
   233 
   234 test lsetComp-3.1 {lset, compiled, flat args, not a simple var name} {
   235     evalInProc {
   236 	set y x
   237 	set x {{1 2} {3 4}}
   238 	lset $y 1 1 5
   239     }
   240 } "0 {{1 2} {3 5}}"
   241 
   242 test lsetComp-3.2 {lset, compiled, flat args, scalar on stack} {
   243     evalInProc {
   244 	set ::x {{1 2} {3 4}}
   245 	lset ::x 1 1 5
   246     }
   247 } "0 {{1 2} {3 5}}"
   248 
   249 test lsetComp-3.3 {lset, compiled, flat args, scalar, one-byte offset} {
   250     evalInProc {
   251 	set x {{1 2} {3 4}}
   252 	lset x 1 1 5
   253     }
   254 } "0 {{1 2} {3 5}}"
   255 
   256 test lsetComp-3.4 {lset, compiled, scalar, four-byte offset} {
   257     evalInProc {
   258 	set x0 0; set x1 0; set x2 0; set x3 0; 
   259 	set x4 0; set x5 0; set x6 0; set x7 0; 
   260 	set x8 0; set x9 0; set x10 0; set x11 0; 
   261 	set x12 0; set x13 0; set x14 0; set x15 0; 
   262 	set x16 0; set x17 0; set x18 0; set x19 0; 
   263 	set x20 0; set x21 0; set x22 0; set x23 0; 
   264 	set x24 0; set x25 0; set x26 0; set x27 0; 
   265 	set x28 0; set x29 0; set x30 0; set x31 0; 
   266 	set x32 0; set x33 0; set x34 0; set x35 0; 
   267 	set x36 0; set x37 0; set x38 0; set x39 0; 
   268 	set x40 0; set x41 0; set x42 0; set x43 0; 
   269 	set x44 0; set x45 0; set x46 0; set x47 0; 
   270 	set x48 0; set x49 0; set x50 0; set x51 0; 
   271 	set x52 0; set x53 0; set x54 0; set x55 0; 
   272 	set x56 0; set x57 0; set x58 0; set x59 0; 
   273 	set x60 0; set x61 0; set x62 0; set x63 0; 
   274 	set x64 0; set x65 0; set x66 0; set x67 0; 
   275 	set x68 0; set x69 0; set x70 0; set x71 0; 
   276 	set x72 0; set x73 0; set x74 0; set x75 0; 
   277 	set x76 0; set x77 0; set x78 0; set x79 0; 
   278 	set x80 0; set x81 0; set x82 0; set x83 0; 
   279 	set x84 0; set x85 0; set x86 0; set x87 0; 
   280 	set x88 0; set x89 0; set x90 0; set x91 0; 
   281 	set x92 0; set x93 0; set x94 0; set x95 0; 
   282 	set x96 0; set x97 0; set x98 0; set x99 0; 
   283 	set x100 0; set x101 0; set x102 0; set x103 0; 
   284 	set x104 0; set x105 0; set x106 0; set x107 0; 
   285 	set x108 0; set x109 0; set x110 0; set x111 0; 
   286 	set x112 0; set x113 0; set x114 0; set x115 0; 
   287 	set x116 0; set x117 0; set x118 0; set x119 0; 
   288 	set x120 0; set x121 0; set x122 0; set x123 0; 
   289 	set x124 0; set x125 0; set x126 0; set x127 0; 
   290 	set x128 0; set x129 0; set x130 0; set x131 0; 
   291 	set x132 0; set x133 0; set x134 0; set x135 0; 
   292 	set x136 0; set x137 0; set x138 0; set x139 0; 
   293 	set x140 0; set x141 0; set x142 0; set x143 0; 
   294 	set x144 0; set x145 0; set x146 0; set x147 0; 
   295 	set x148 0; set x149 0; set x150 0; set x151 0; 
   296 	set x152 0; set x153 0; set x154 0; set x155 0; 
   297 	set x156 0; set x157 0; set x158 0; set x159 0; 
   298 	set x160 0; set x161 0; set x162 0; set x163 0; 
   299 	set x164 0; set x165 0; set x166 0; set x167 0; 
   300 	set x168 0; set x169 0; set x170 0; set x171 0; 
   301 	set x172 0; set x173 0; set x174 0; set x175 0; 
   302 	set x176 0; set x177 0; set x178 0; set x179 0; 
   303 	set x180 0; set x181 0; set x182 0; set x183 0; 
   304 	set x184 0; set x185 0; set x186 0; set x187 0; 
   305 	set x188 0; set x189 0; set x190 0; set x191 0; 
   306 	set x192 0; set x193 0; set x194 0; set x195 0; 
   307 	set x196 0; set x197 0; set x198 0; set x199 0; 
   308 	set x200 0; set x201 0; set x202 0; set x203 0; 
   309 	set x204 0; set x205 0; set x206 0; set x207 0; 
   310 	set x208 0; set x209 0; set x210 0; set x211 0; 
   311 	set x212 0; set x213 0; set x214 0; set x215 0; 
   312 	set x216 0; set x217 0; set x218 0; set x219 0; 
   313 	set x220 0; set x221 0; set x222 0; set x223 0; 
   314 	set x224 0; set x225 0; set x226 0; set x227 0; 
   315 	set x228 0; set x229 0; set x230 0; set x231 0; 
   316 	set x232 0; set x233 0; set x234 0; set x235 0; 
   317 	set x236 0; set x237 0; set x238 0; set x239 0; 
   318 	set x240 0; set x241 0; set x242 0; set x243 0; 
   319 	set x244 0; set x245 0; set x246 0; set x247 0; 
   320 	set x248 0; set x249 0; set x250 0; set x251 0; 
   321 	set x252 0; set x253 0; set x254 0; set x255 0;
   322 	set x {{1 2} {3 4}}
   323 	lset x 1 1 5
   324     }
   325 } "0 {{1 2} {3 5}}"
   326 
   327 test lsetComp-3.5 {lset, compiled, flat args, array on stack} {
   328     evalInProc {
   329 	set ::y(0) {{1 2} {3 4}}
   330 	lset ::y(0) 1 1 5
   331     }
   332 } "0 {{1 2} {3 5}}"
   333 
   334 test lsetComp-3.6 {lset, compiled, flat args, array, one-byte offset} {
   335     evalInProc {
   336 	set y(0) {{1 2} {3 4}}
   337 	lset y(0) 1 1 5
   338     }
   339 } "0 {{1 2} {3 5}}"
   340 
   341 test lsetComp-3.7 {lset, compiled, flat args, array, four-byte offset} {
   342     evalInProc {
   343 	set x0 0; set x1 0; set x2 0; set x3 0; 
   344 	set x4 0; set x5 0; set x6 0; set x7 0; 
   345 	set x8 0; set x9 0; set x10 0; set x11 0; 
   346 	set x12 0; set x13 0; set x14 0; set x15 0; 
   347 	set x16 0; set x17 0; set x18 0; set x19 0; 
   348 	set x20 0; set x21 0; set x22 0; set x23 0; 
   349 	set x24 0; set x25 0; set x26 0; set x27 0; 
   350 	set x28 0; set x29 0; set x30 0; set x31 0; 
   351 	set x32 0; set x33 0; set x34 0; set x35 0; 
   352 	set x36 0; set x37 0; set x38 0; set x39 0; 
   353 	set x40 0; set x41 0; set x42 0; set x43 0; 
   354 	set x44 0; set x45 0; set x46 0; set x47 0; 
   355 	set x48 0; set x49 0; set x50 0; set x51 0; 
   356 	set x52 0; set x53 0; set x54 0; set x55 0; 
   357 	set x56 0; set x57 0; set x58 0; set x59 0; 
   358 	set x60 0; set x61 0; set x62 0; set x63 0; 
   359 	set x64 0; set x65 0; set x66 0; set x67 0; 
   360 	set x68 0; set x69 0; set x70 0; set x71 0; 
   361 	set x72 0; set x73 0; set x74 0; set x75 0; 
   362 	set x76 0; set x77 0; set x78 0; set x79 0; 
   363 	set x80 0; set x81 0; set x82 0; set x83 0; 
   364 	set x84 0; set x85 0; set x86 0; set x87 0; 
   365 	set x88 0; set x89 0; set x90 0; set x91 0; 
   366 	set x92 0; set x93 0; set x94 0; set x95 0; 
   367 	set x96 0; set x97 0; set x98 0; set x99 0; 
   368 	set x100 0; set x101 0; set x102 0; set x103 0; 
   369 	set x104 0; set x105 0; set x106 0; set x107 0; 
   370 	set x108 0; set x109 0; set x110 0; set x111 0; 
   371 	set x112 0; set x113 0; set x114 0; set x115 0; 
   372 	set x116 0; set x117 0; set x118 0; set x119 0; 
   373 	set x120 0; set x121 0; set x122 0; set x123 0; 
   374 	set x124 0; set x125 0; set x126 0; set x127 0; 
   375 	set x128 0; set x129 0; set x130 0; set x131 0; 
   376 	set x132 0; set x133 0; set x134 0; set x135 0; 
   377 	set x136 0; set x137 0; set x138 0; set x139 0; 
   378 	set x140 0; set x141 0; set x142 0; set x143 0; 
   379 	set x144 0; set x145 0; set x146 0; set x147 0; 
   380 	set x148 0; set x149 0; set x150 0; set x151 0; 
   381 	set x152 0; set x153 0; set x154 0; set x155 0; 
   382 	set x156 0; set x157 0; set x158 0; set x159 0; 
   383 	set x160 0; set x161 0; set x162 0; set x163 0; 
   384 	set x164 0; set x165 0; set x166 0; set x167 0; 
   385 	set x168 0; set x169 0; set x170 0; set x171 0; 
   386 	set x172 0; set x173 0; set x174 0; set x175 0; 
   387 	set x176 0; set x177 0; set x178 0; set x179 0; 
   388 	set x180 0; set x181 0; set x182 0; set x183 0; 
   389 	set x184 0; set x185 0; set x186 0; set x187 0; 
   390 	set x188 0; set x189 0; set x190 0; set x191 0; 
   391 	set x192 0; set x193 0; set x194 0; set x195 0; 
   392 	set x196 0; set x197 0; set x198 0; set x199 0; 
   393 	set x200 0; set x201 0; set x202 0; set x203 0; 
   394 	set x204 0; set x205 0; set x206 0; set x207 0; 
   395 	set x208 0; set x209 0; set x210 0; set x211 0; 
   396 	set x212 0; set x213 0; set x214 0; set x215 0; 
   397 	set x216 0; set x217 0; set x218 0; set x219 0; 
   398 	set x220 0; set x221 0; set x222 0; set x223 0; 
   399 	set x224 0; set x225 0; set x226 0; set x227 0; 
   400 	set x228 0; set x229 0; set x230 0; set x231 0; 
   401 	set x232 0; set x233 0; set x234 0; set x235 0; 
   402 	set x236 0; set x237 0; set x238 0; set x239 0; 
   403 	set x240 0; set x241 0; set x242 0; set x243 0; 
   404 	set x244 0; set x245 0; set x246 0; set x247 0; 
   405 	set x248 0; set x249 0; set x250 0; set x251 0; 
   406 	set x252 0; set x253 0; set x254 0; set x255 0;
   407 	set y(0) {{1 2} {3 4}}
   408 	lset y(0) 1 1 5
   409     }
   410 } "0 {{1 2} {3 5}}"
   411 
   412 test lsetComp-3.8 {lset, compiled, flat args, error } {
   413     evalInProc {
   414 	set x { {1 2} {3 4} }
   415 	lset x 1 5 5
   416     }
   417 } "1 {list index out of range}"
   418 
   419 test lsetComp-3.9 {lset, compiled, flat args, error - is string preserved} {
   420     set ::x { { 1 2 } { 3 4 } }
   421     evalInProc {
   422 	lset ::x 1 5 5
   423     }
   424     list $::x [lindex $::x 1]
   425 } "{ { 1 2 } { 3 4 } } { 3 4 }"
   426 
   427 catch { rename evalInProc {} }
   428 catch { unset ::x }
   429 catch { unset ::y }
   430 
   431 # cleanup
   432 ::tcltest::cleanupTests
   433 return