]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/testsuite/gdb.base/dump.exp
Update copyright year range in all GDB files
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.base / dump.exp
CommitLineData
e2882c85 1# Copyright 2002-2018 Free Software Foundation, Inc.
dd7dfd64
MS
2
3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by
e22f8b7c 5# the Free Software Foundation; either version 3 of the License, or
dd7dfd64 6# (at your option) any later version.
e22f8b7c 7#
dd7dfd64
MS
8# This program is distributed in the hope that it will be useful,
9# but WITHOUT ANY WARRANTY; without even the implied warranty of
10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11# GNU General Public License for more details.
e22f8b7c 12#
dd7dfd64 13# You should have received a copy of the GNU General Public License
e22f8b7c 14# along with this program. If not, see <http://www.gnu.org/licenses/>.
dd7dfd64 15
dd7dfd64
MS
16# This file was written by Michael Snyder (msnyder@redhat.com)
17# This is a test for the gdb command "dump".
18
dd7dfd64 19
f76495c8 20standard_testfile
dd7dfd64 21
f6347e16 22set options {debug}
dd7dfd64 23
f31dfe3b 24set is64bitonly "no"
1ab80e5b 25set endian "auto"
f31dfe3b 26
f6347e16
RH
27if [istarget "alpha*-*-*"] then {
28 # SREC etc cannot handle 64-bit addresses. Force the test
29 # program into the low 31 bits of the address space.
30 lappend options "additional_flags=-Wl,-taso"
31}
32
1fac167a
UW
33if {[istarget "spu*-*-*"]} then {
34 # The internal address format used for the combined Cell/B.E.
35 # debugger requires 64-bit.
36 set is64bitonly "yes"
37}
38
f6347e16 39if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable ${options}] != "" } {
84c93cd5 40 untested "failed to compile"
b60f0898 41 return -1
dd7dfd64
MS
42}
43
44# Start with a fresh gdb.
45
46gdb_exit
47gdb_start
48gdb_reinitialize_dir $srcdir/$subdir
c0ac0ec7
JK
49
50gdb_test "dump mem /dev/null 0x10 0x20" "Cannot access memory at address 0x10" \
51 "inaccessible memory is reported"
52
dd7dfd64
MS
53gdb_load ${binfile}
54
497a4c48
LM
55# Check the address of a variable. If it is bigger than 32-bit,
56# assume our target has 64-bit addresses that are not supported by SREC,
57# IHEX and TEKHEX. We skip those tests then.
58set max_32bit_address "0xffffffff"
59set data_address [get_hexadecimal_valueof "&intarray" 0x100000000]
60if {${data_address} > ${max_32bit_address}} then {
61 set is64bitonly "yes"
62}
63
dd7dfd64
MS
64# Clean up any stale output files from previous test runs
65
08b3fe69
TT
66set filenames {}
67set all_files {
68 intarr1.bin intarr1b.bin intarr1.ihex
cf75d6c3
AB
69 intarr1.srec intarr1.tekhex intarr1.verilog
70 intarr2.bin intarr2b.bin intarr2.ihex
71 intarr2.srec intarr2.tekhex intarr2.verilog
72 intstr1.bin intstr1b.bin intstr1.ihex
73 intstr1.srec intstr1.tekhex intstr1.verilog
74 intstr2.bin intstr2b.bin intstr2.ihex
75 intstr2.srec intstr2.tekhex intstr2.verilog
76 intarr3.srec
08b3fe69
TT
77}
78
79# This loop sets variables dynamically -- each name listed in
80# $ALL_FILES is both a file name and a variable name.
81foreach file $all_files {
82 if {[is_remote host]} {
83 set this_name $file
84 } else {
85 set this_name [standard_output_file $file]
86 }
87
88 lappend filenames [set ${file} $this_name]
89}
90
91remote_exec host "rm -f $filenames"
dd7dfd64
MS
92
93# Test help (FIXME:)
94
95# Run target program until data structs are initialized.
96
97if { ! [ runto checkpoint1 ] } then {
84c93cd5 98 untested "couldn't run to checkpoint"
b60f0898 99 return -1
dd7dfd64
MS
100}
101
1ab80e5b
MR
102# Get the endianness for the later use with endianless formats.
103
805acca0 104set endian [get_endianness]
1ab80e5b 105
dd7dfd64
MS
106# Now generate some dump files.
107
108proc make_dump_file { command msg } {
109 global gdb_prompt
110
a76e022a 111 gdb_test_multiple "${command}" "$msg" {
dd7dfd64
MS
112 -re ".*\[Ee\]rror.*$gdb_prompt $" { fail $msg }
113 -re ".*\[Ww\]arning.*$gdb_prompt $" { fail $msg }
114 -re ".*\[Uu\]ndefined .*$gdb_prompt $" { fail $msg }
a76e022a 115 -re ".*$gdb_prompt $" { pass $msg }
dd7dfd64
MS
116 }
117}
118
08b3fe69 119make_dump_file "dump val [set intarr1.bin] intarray" \
dd7dfd64
MS
120 "dump array as value, default"
121
08b3fe69 122make_dump_file "dump val [set intstr1.bin] intstruct" \
dd7dfd64
MS
123 "dump struct as value, default"
124
08b3fe69 125make_dump_file "dump bin val [set intarr1b.bin] intarray" \
dd7dfd64
MS
126 "dump array as value, binary"
127
08b3fe69 128make_dump_file "dump bin val [set intstr1b.bin] intstruct" \
dd7dfd64
MS
129 "dump struct as value, binary"
130
08b3fe69 131make_dump_file "dump srec val [set intarr1.srec] intarray" \
dd7dfd64
MS
132 "dump array as value, srec"
133
08b3fe69 134make_dump_file "dump srec val [set intstr1.srec] intstruct" \
dd7dfd64
MS
135 "dump struct as value, srec"
136
08b3fe69 137make_dump_file "dump ihex val [set intarr1.ihex] intarray" \
dd7dfd64
MS
138 "dump array as value, intel hex"
139
08b3fe69 140make_dump_file "dump ihex val [set intstr1.ihex] intstruct" \
dd7dfd64
MS
141 "dump struct as value, intel hex"
142
08b3fe69 143make_dump_file "dump tekhex val [set intarr1.tekhex] intarray" \
dd7dfd64
MS
144 "dump array as value, tekhex"
145
08b3fe69 146make_dump_file "dump tekhex val [set intstr1.tekhex] intstruct" \
dd7dfd64
MS
147 "dump struct as value, tekhex"
148
cf75d6c3 149make_dump_file "dump verilog val [set intarr1.verilog] intarray" \
1f8db343 150 "dump array as value, verilog"
cf75d6c3
AB
151
152make_dump_file "dump verilog val [set intstr1.verilog] intstruct" \
1f8db343 153 "dump struct as value, verilog"
cf75d6c3 154
8d394f98 155proc capture_value { expression args } {
dd7dfd64
MS
156 global gdb_prompt
157 global expect_out
158
159 set output_string ""
8d394f98 160 if {[llength $args] > 0} {
bf6be0f4
TT
161 # Convert $args into a simple string and don't use EXPRESSION
162 # in the test name.
163 set test "[join $args]; capture"
8d394f98
AC
164 } {
165 set test "capture $expression"
166 }
167 gdb_test_multiple "print ${expression}" "$test" {
168 -re "\\$\[0-9\]+ = (\[^\r\n\]+).*$gdb_prompt $" {
169 set output_string "$expect_out(1,string)"
170 pass "$test"
dd7dfd64 171 }
8d394f98
AC
172 -re "(Cannot access memory at address \[^\r\n\]+).*$gdb_prompt $" {
173 # Even a failed value is valid
174 set output_string "$expect_out(1,string)"
175 pass "$test"
dd7dfd64
MS
176 }
177 }
178 return $output_string
179}
180
54aeeb99
YQ
181# POINTER is a pointer and this proc captures the value of POINTER along
182# with POINTER's type. For example, POINTER is "&intarray", this proc will
183# call "p &intarray", capture "(int (*)[32]) 0x804a0e0", and return this
184# string.
185
186proc capture_pointer_with_type { pointer } {
187 global gdb_prompt
188 global expect_out
189
190 set test "capture type of pointer $pointer"
191 set output_string ""
192 gdb_test_multiple "p ${pointer}" $test {
193 -re "\\$\[0-9\]+ = .*$gdb_prompt $" {
194 # Expected output of "p ${pointer}" is like "$7 = (int (*)[32]) 0x804a0e0",
195 # and we want to extract "(int (*)[32]) 0x804a0e0" from it via
196 # following regexp.
197 if [regexp " \\(.*\\).* 0x\[0-9a-fA-F\]+" $expect_out(0,string) output_string] {
198 # OUTPUT_STRING is expected to be like "(int (*)[32]) 0x804a0e0".
199 pass "$test"
200 } else {
201 fail "$test"
202 }
203 }
204 }
205
206 return $output_string
207}
208
dd7dfd64
MS
209set array_start [capture_value "/x &intarray\[0\]"]
210set array_end [capture_value "/x &intarray\[32\]"]
211set struct_start [capture_value "/x &intstruct"]
212set struct_end [capture_value "/x &intstruct + 1"]
213
214set array_val [capture_value "intarray"]
215set struct_val [capture_value "intstruct"]
216
54aeeb99
YQ
217set array_ptr_type [capture_pointer_with_type "&intarray"]
218set struct_ptr_type [capture_pointer_with_type "&intstruct"]
219
08b3fe69 220make_dump_file "dump mem [set intarr2.bin] $array_start $array_end" \
dd7dfd64
MS
221 "dump array as memory, default"
222
08b3fe69 223make_dump_file "dump mem [set intstr2.bin] $struct_start $struct_end" \
dd7dfd64
MS
224 "dump struct as memory, default"
225
08b3fe69 226make_dump_file "dump bin mem [set intarr2b.bin] $array_start $array_end" \
dd7dfd64
MS
227 "dump array as memory, binary"
228
08b3fe69 229make_dump_file "dump bin mem [set intstr2b.bin] $struct_start $struct_end" \
dd7dfd64
MS
230 "dump struct as memory, binary"
231
08b3fe69 232make_dump_file "dump srec mem [set intarr2.srec] $array_start $array_end" \
dd7dfd64
MS
233 "dump array as memory, srec"
234
08b3fe69 235make_dump_file "dump srec mem [set intstr2.srec] $struct_start $struct_end" \
dd7dfd64
MS
236 "dump struct as memory, srec"
237
08b3fe69 238make_dump_file "dump ihex mem [set intarr2.ihex] $array_start $array_end" \
dd7dfd64
MS
239 "dump array as memory, ihex"
240
08b3fe69 241make_dump_file "dump ihex mem [set intstr2.ihex] $struct_start $struct_end" \
dd7dfd64
MS
242 "dump struct as memory, ihex"
243
08b3fe69 244make_dump_file "dump tekhex mem [set intarr2.tekhex] $array_start $array_end" \
dd7dfd64
MS
245 "dump array as memory, tekhex"
246
08b3fe69 247make_dump_file "dump tekhex mem [set intstr2.tekhex] $struct_start $struct_end" \
dd7dfd64
MS
248 "dump struct as memory, tekhex"
249
cf75d6c3
AB
250make_dump_file "dump verilog mem [set intarr2.verilog] $array_start $array_end" \
251 "dump array as memory, verilog"
252
253make_dump_file "dump verilog mem [set intstr2.verilog] $struct_start $struct_end" \
254 "dump struct as memory, verilog"
255
dd7dfd64
MS
256# test complex expressions
257make_dump_file \
08b3fe69 258 "dump srec mem [set intarr3.srec] &intarray \(char *\) &intarray + sizeof intarray" \
dd7dfd64
MS
259 "dump array as mem, srec, expressions"
260
dd7dfd64
MS
261proc test_restore_saved_value { restore_args msg oldval newval } {
262 global gdb_prompt
263
264 gdb_test "restore $restore_args" \
8d394f98
AC
265 "Restoring .*" \
266 "$msg; file restored ok"
267 if { ![string compare $oldval \
268 [capture_value $newval "$msg"]] } then {
269 pass "$msg; value restored ok"
dd7dfd64 270 } else {
8d394f98 271 fail "$msg; value restored ok"
dd7dfd64
MS
272 }
273}
274
f31dfe3b 275if ![string compare $is64bitonly "no"] then {
dd7dfd64 276
54aeeb99 277 gdb_test "print zero_all ()" ".*"
dd7dfd64 278
08b3fe69 279 test_restore_saved_value "[set intarr1.srec]" "array as value, srec" \
dd7dfd64
MS
280 $array_val "intarray"
281
08b3fe69 282 test_restore_saved_value "[set intstr1.srec]" "struct as value, srec" \
dd7dfd64
MS
283 $struct_val "intstruct"
284
f31dfe3b 285 gdb_test "print zero_all ()" "void" "zero all"
dd7dfd64 286
08b3fe69 287 test_restore_saved_value "[set intarr2.srec]" "array as memory, srec" \
dd7dfd64
MS
288 $array_val "intarray"
289
08b3fe69 290 test_restore_saved_value "[set intstr2.srec]" "struct as memory, srec" \
dd7dfd64
MS
291 $struct_val "intstruct"
292
f6978de9 293 gdb_test "print zero_all ()" ".*"
dd7dfd64 294
08b3fe69 295 test_restore_saved_value "[set intarr1.ihex]" "array as value, ihex" \
dd7dfd64
MS
296 $array_val "intarray"
297
08b3fe69 298 test_restore_saved_value "[set intstr1.ihex]" "struct as value, ihex" \
dd7dfd64
MS
299 $struct_val "intstruct"
300
f6978de9 301 gdb_test "print zero_all ()" ".*"
dd7dfd64 302
08b3fe69 303 test_restore_saved_value "[set intarr2.ihex]" "array as memory, ihex" \
dd7dfd64
MS
304 $array_val "intarray"
305
08b3fe69 306 test_restore_saved_value "[set intstr2.ihex]" "struct as memory, ihex" \
dd7dfd64
MS
307 $struct_val "intstruct"
308
f6978de9 309 gdb_test "print zero_all ()" ".*"
dd7dfd64 310
08b3fe69 311 test_restore_saved_value "[set intarr1.tekhex]" "array as value, tekhex" \
dd7dfd64
MS
312 $array_val "intarray"
313
08b3fe69 314 test_restore_saved_value "[set intstr1.tekhex]" "struct as value, tekhex" \
dd7dfd64
MS
315 $struct_val "intstruct"
316
f6978de9 317 gdb_test "print zero_all ()" ".*"
dd7dfd64 318
08b3fe69 319 test_restore_saved_value "[set intarr2.tekhex]" "array as memory, tekhex" \
dd7dfd64
MS
320 $array_val "intarray"
321
08b3fe69 322 test_restore_saved_value "[set intstr2.tekhex]" "struct as memory, tekhex" \
dd7dfd64 323 $struct_val "intstruct"
f31dfe3b 324}
dd7dfd64 325
f6978de9 326gdb_test "print zero_all ()" ".*"
dd7dfd64 327
08b3fe69 328test_restore_saved_value "[set intarr1.bin] binary $array_start" \
dd7dfd64
MS
329 "array as value, binary" \
330 $array_val "intarray"
331
08b3fe69 332test_restore_saved_value "[set intstr1.bin] binary $struct_start" \
dd7dfd64
MS
333 "struct as value, binary" \
334 $struct_val "intstruct"
335
f6978de9 336gdb_test "print zero_all ()" ".*"
dd7dfd64 337
08b3fe69 338test_restore_saved_value "[set intarr2.bin] binary $array_start" \
dd7dfd64
MS
339 "array as memory, binary" \
340 $array_val "intarray"
341
08b3fe69 342test_restore_saved_value "[set intstr2.bin] binary $struct_start" \
dd7dfd64
MS
343 "struct as memory, binary" \
344 $struct_val "intstruct"
345
346# test restore with offset.
347
348set array2_start [capture_value "/x &intarray2\[0\]"]
349set struct2_start [capture_value "/x &intstruct2"]
350set array2_offset \
2db536a1 351 [capture_value "(char *) &intarray2 - (char *) &intarray"]
dd7dfd64 352set struct2_offset \
2db536a1 353 [capture_value "(char *) &intstruct2 - (char *) &intstruct"]
dd7dfd64 354
f6978de9 355gdb_test "print zero_all ()" ".*"
dd7dfd64 356
f31dfe3b
JJ
357
358if ![string compare $is64bitonly "no"] then {
08b3fe69 359 test_restore_saved_value "[set intarr1.srec] $array2_offset" \
dd7dfd64
MS
360 "array copy, srec" \
361 $array_val "intarray2"
362
08b3fe69 363 test_restore_saved_value "[set intstr1.srec] $struct2_offset" \
dd7dfd64
MS
364 "struct copy, srec" \
365 $struct_val "intstruct2"
366
f6978de9 367 gdb_test "print zero_all ()" ".*"
dd7dfd64 368
08b3fe69 369 test_restore_saved_value "[set intarr1.ihex] $array2_offset" \
dd7dfd64
MS
370 "array copy, ihex" \
371 $array_val "intarray2"
372
08b3fe69 373 test_restore_saved_value "[set intstr1.ihex] $struct2_offset" \
dd7dfd64
MS
374 "struct copy, ihex" \
375 $struct_val "intstruct2"
376
f6978de9 377 gdb_test "print zero_all ()" ".*"
dd7dfd64 378
08b3fe69 379 test_restore_saved_value "[set intarr1.tekhex] $array2_offset" \
dd7dfd64
MS
380 "array copy, tekhex" \
381 $array_val "intarray2"
382
08b3fe69 383 test_restore_saved_value "[set intstr1.tekhex] $struct2_offset" \
dd7dfd64
MS
384 "struct copy, tekhex" \
385 $struct_val "intstruct2"
f31dfe3b 386}
dd7dfd64 387
f6978de9 388gdb_test "print zero_all ()" ".*"
dd7dfd64 389
08b3fe69 390test_restore_saved_value "[set intarr1.bin] binary $array2_start" \
dd7dfd64
MS
391 "array copy, binary" \
392 $array_val "intarray2"
393
08b3fe69 394test_restore_saved_value "[set intstr1.bin] binary $struct2_start" \
dd7dfd64
MS
395 "struct copy, binary" \
396 $struct_val "intstruct2"
397
398#
399# test restore with start/stop addresses.
400#
401# For this purpose, we will restore just the third element of the array,
402# and check to see that adjacent elements are not modified.
403#
404# We will need the address and offset of the third and fourth elements.
405#
406
407set element3_start [capture_value "/x &intarray\[3\]"]
408set element4_start [capture_value "/x &intarray\[4\]"]
409set element3_offset \
410 [capture_value "/x (char *) &intarray\[3\] - (char *) &intarray\[0\]"]
411set element4_offset \
412 [capture_value "/x (char *) &intarray\[4\] - (char *) &intarray\[0\]"]
413
f31dfe3b 414if ![string compare $is64bitonly "no"] then {
f6978de9 415 gdb_test "print zero_all ()" ".*"
dd7dfd64 416
08b3fe69 417 test_restore_saved_value "[set intarr1.srec] 0 $element3_start $element4_start" \
8d394f98 418 "array partial, srec" 4 "intarray\[3\]"
dd7dfd64 419
f31dfe3b
JJ
420 gdb_test "print intarray\[2\] == 0" " = 1" "element 2 not changed - 1"
421 gdb_test "print intarray\[4\] == 0" " = 1" "element 4 not changed - 1"
dd7dfd64 422
f6978de9 423 gdb_test "print zero_all ()" ".*"
dd7dfd64 424
08b3fe69 425 test_restore_saved_value "[set intarr1.ihex] 0 $element3_start $element4_start" \
8d394f98 426 "array partial, ihex" 4 "intarray\[3\]"
dd7dfd64 427
f31dfe3b
JJ
428 gdb_test "print intarray\[2\] == 0" " = 1" "element 2 not changed - 2"
429 gdb_test "print intarray\[4\] == 0" " = 1" "element 4 not changed - 2"
dd7dfd64 430
f6978de9 431 gdb_test "print zero_all ()" ".*"
dd7dfd64 432
08b3fe69 433 test_restore_saved_value "[set intarr1.tekhex] 0 $element3_start $element4_start" \
8d394f98 434 "array partial, tekhex" 4 "intarray\[3\]"
dd7dfd64 435
f31dfe3b
JJ
436 gdb_test "print intarray\[2\] == 0" " = 1" "element 2 not changed - 3"
437 gdb_test "print intarray\[4\] == 0" " = 1" "element 4 not changed - 3"
438}
dd7dfd64 439
f6978de9 440gdb_test "print zero_all ()" ".*"
dd7dfd64
MS
441
442test_restore_saved_value \
08b3fe69 443 "[set intarr1.bin] binary $array_start $element3_offset $element4_offset" \
8d394f98 444 "array partial, binary" 4 "intarray\[3\]"
dd7dfd64
MS
445
446gdb_test "print intarray\[2\] == 0" " = 1" "element 2 not changed - 4"
447gdb_test "print intarray\[4\] == 0" " = 1" "element 4 not changed - 4"
448
f31dfe3b 449if ![string compare $is64bitonly "no"] then {
de7ff789 450 gdb_test "print zero_all ()" ".*" ""
dd7dfd64 451
f31dfe3b
JJ
452 # restore with expressions
453 test_restore_saved_value \
08b3fe69 454 "[set intarr3.srec] (char*)${array2_start}-(char*)${array_start} &intarray\[3\] &intarray\[4\]" \
8d394f98 455 "array partial with expressions" 4 "intarray2\[3\]"
dd7dfd64 456
f31dfe3b
JJ
457 gdb_test "print intarray2\[2\] == 0" " = 1" "element 2 not changed, == 4"
458 gdb_test "print intarray2\[4\] == 0" " = 1" "element 4 not changed, == 4"
459}
dd7dfd64 460
54aeeb99
YQ
461
462# Now start a fresh gdb session, and reload the saved value files.
463
464gdb_exit
465gdb_start
466gdb_file_cmd ${binfile}
467
468# Now fix the endianness at the correct state.
469
470gdb_test_multiple "set endian $endian" "set endianness" {
471 -re ".* (big|little) endian.*$gdb_prompt $" {
472 pass "setting $endian endianness"
473 }
474}
475
476# Reload saved values one by one, and compare.
477
478if { ![string compare $array_val \
bf6be0f4 479 [capture_value "intarray" "file binfile; intarray"]] } then {
54aeeb99
YQ
480 fail "start with intarray un-initialized"
481} else {
482 pass "start with intarray un-initialized"
483}
484
485if { ![string compare $struct_val \
bf6be0f4 486 [capture_value "intstruct" "file binfile; intstruct"]] } then {
54aeeb99
YQ
487 fail "start with intstruct un-initialized"
488} else {
489 pass "start with intstruct un-initialized"
490}
491
492proc test_reload_saved_value { filename msg oldval newval } {
493 global gdb_prompt
494
495 gdb_file_cmd $filename
496 if { ![string compare $oldval \
497 [capture_value $newval "$msg"]] } then {
498 pass "$msg; value restored ok"
499 } else {
500 fail "$msg; value restored ok"
501 }
502}
503
504# srec format can not be loaded for 64-bit-only platforms
505if ![string compare $is64bitonly "no"] then {
08b3fe69 506 test_reload_saved_value "[set intarr1.srec]" "reload array as value, srec" \
54aeeb99 507 $array_val "\*$array_ptr_type"
08b3fe69 508 test_reload_saved_value "[set intstr1.srec]" "reload struct as value, srec" \
54aeeb99 509 $struct_val "\*$struct_ptr_type"
08b3fe69 510 test_reload_saved_value "[set intarr2.srec]" "reload array as memory, srec" \
54aeeb99 511 $array_val "\*$array_ptr_type"
08b3fe69 512 test_reload_saved_value "[set intstr2.srec]" "reload struct as memory, srec" \
54aeeb99
YQ
513 $struct_val "\*$struct_ptr_type"
514}
515
516# ihex format can not be loaded for 64-bit-only platforms
517if ![string compare $is64bitonly "no"] then {
518
08b3fe69
TT
519 test_reload_saved_value "[set intarr1.ihex]" \
520 "reload array as value, intel hex" \
54aeeb99 521 $array_val "\*$array_ptr_type"
08b3fe69
TT
522 test_reload_saved_value "[set intstr1.ihex]" \
523 "reload struct as value, intel hex" \
54aeeb99 524 $struct_val "\*$struct_ptr_type"
08b3fe69
TT
525 test_reload_saved_value "[set intarr2.ihex]" \
526 "reload array as memory, intel hex" \
54aeeb99 527 $array_val "\*$array_ptr_type"
08b3fe69
TT
528 test_reload_saved_value "[set intstr2.ihex]" \
529 "reload struct as memory, intel hex" \
54aeeb99
YQ
530 $struct_val "\*$struct_ptr_type"
531}
532
533# tekhex format can not be loaded for 64-bit-only platforms
534if ![string compare $is64bitonly "no"] then {
08b3fe69
TT
535 test_reload_saved_value "[set intarr1.tekhex]" \
536 "reload array as value, tekhex" \
54aeeb99 537 $array_val "\*$array_ptr_type"
08b3fe69
TT
538 test_reload_saved_value "[set intstr1.tekhex]" \
539 "reload struct as value, tekhex" \
54aeeb99 540 $struct_val "\*$struct_ptr_type"
08b3fe69
TT
541 test_reload_saved_value "[set intarr2.tekhex]" \
542 "reload array as memory, tekhex" \
54aeeb99 543 $array_val "\*$array_ptr_type"
08b3fe69
TT
544 test_reload_saved_value "[set intstr2.tekhex]" \
545 "reload struct as memory, tekhex" \
54aeeb99
YQ
546 $struct_val "\*$struct_ptr_type"
547}
548
dd7dfd64
MS
549# clean up files
550
08b3fe69 551remote_exec host "rm -f $filenames"