mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-22 19:09:31 +08:00
[gdb/testsuite] Use unique files in gdb.dwarf2/dw2-lines.exp
While debugging a problem in gdb.dwarf2/dw2-lines.exp, I realized that the test-case generates all executables and associated temporary files using the same filenames. Fix this by adding a new proc prefix_id in lib/gdb.exp, and using it in the test-case. Tested on x86_64-linux.
This commit is contained in:
@ -20,7 +20,7 @@ load_lib dwarf.exp
|
|||||||
# This test can only be run on targets which support DWARF-2 and use gas.
|
# This test can only be run on targets which support DWARF-2 and use gas.
|
||||||
require dwarf2_support 1
|
require dwarf2_support 1
|
||||||
|
|
||||||
standard_testfile .c -dw.S
|
standard_testfile .c
|
||||||
|
|
||||||
with_shared_gdb {
|
with_shared_gdb {
|
||||||
set func_info_vars \
|
set func_info_vars \
|
||||||
@ -46,6 +46,8 @@ proc test_1 { _cv _cdw64 _lv _ldw64 {_string_form ""}} {
|
|||||||
set ldw64 $_ldw64
|
set ldw64 $_ldw64
|
||||||
set string_form $_string_form
|
set string_form $_string_form
|
||||||
|
|
||||||
|
standard_testfile .c [prefix_id]-dw.S
|
||||||
|
|
||||||
set asm_file [standard_output_file $srcfile2]
|
set asm_file [standard_output_file $srcfile2]
|
||||||
Dwarf::assemble $asm_file {
|
Dwarf::assemble $asm_file {
|
||||||
declare_labels Llines
|
declare_labels Llines
|
||||||
@ -103,7 +105,7 @@ proc test_1 { _cv _cdw64 _lv _ldw64 {_string_form ""}} {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if { [prepare_for_testing "failed to prepare" ${testfile} \
|
if { [prepare_for_testing "failed to prepare" ${testfile}.[prefix_id] \
|
||||||
[list $srcfile $asm_file] {nodebug}] } {
|
[list $srcfile $asm_file] {nodebug}] } {
|
||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
|
@ -2498,6 +2498,32 @@ proc proc_with_prefix {name arguments body} {
|
|||||||
proc $name $arguments [list with_test_prefix $name $body]
|
proc $name $arguments [list with_test_prefix $name $body]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Return an id corresponding to the test prefix stored in $pf_prefix, which
|
||||||
|
# is more suitable for use in a file name.
|
||||||
|
# F.i., for a pf_prefix:
|
||||||
|
# gdb.dwarf2/dw2-lines.exp: \
|
||||||
|
# cv=5: cdw=64: lv=5: ldw=64: string_form=line_strp:
|
||||||
|
# return an id:
|
||||||
|
# cv-5-cdw-32-lv-5-ldw-64-string_form-line_strp
|
||||||
|
|
||||||
|
proc prefix_id {} {
|
||||||
|
global pf_prefix
|
||||||
|
set id $pf_prefix
|
||||||
|
|
||||||
|
# Strip ".exp: " prefix.
|
||||||
|
set id [regsub {.*\.exp: } $id {}]
|
||||||
|
|
||||||
|
# Strip colon suffix.
|
||||||
|
set id [regsub {:$} $id {}]
|
||||||
|
|
||||||
|
# Strip spaces.
|
||||||
|
set id [regsub -all { } $id {}]
|
||||||
|
|
||||||
|
# Replace colons, equal signs.
|
||||||
|
set id [regsub -all \[:=\] $id -]
|
||||||
|
|
||||||
|
return $id
|
||||||
|
}
|
||||||
|
|
||||||
# Run BODY in the context of the caller. After BODY is run, the variables
|
# Run BODY in the context of the caller. After BODY is run, the variables
|
||||||
# listed in VARS will be reset to the values they had before BODY was run.
|
# listed in VARS will be reset to the values they had before BODY was run.
|
||||||
|
Reference in New Issue
Block a user