| [25] | 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 | 
|---|