introduce gdb_remote_download and finish parallel fixes in gdb.dwarf2
This finishes making gdb.dwarf2 parallel-safe. To do this, this patch introduces a new gdb_remote_download proc, that works somewhat differently in the one specific case where it matters: for a copy to "host", if no destination was given, and the host is not actually remote, then standard_output_file is used. In parallel mode this guarantees that the resulting file will end up in a parallel-safe location. Tested on x86-64 Fedora 18. * gdb.dwarf2/dw2-basic.exp: Use gdb_remote_download. * gdb.dwarf2/dw2-compressed.exp: Use gdb_remote_download. * gdb.dwarf2/dw2-intercu.exp: Use gdb_remote_download. * gdb.dwarf2/dw2-intermix.exp: Use gdb_remote_download. * gdb.dwarf2/dw2-producer.exp: Use gdb_remote_download. * gdb.dwarf2/mac-fileno.exp: Use gdb_remote_download. * lib/gdb.exp (gdb_remote_download): New proc.
This commit is contained in:
parent
7a218f8865
commit
44ee81740e
8 changed files with 34 additions and 6 deletions
|
@ -1,3 +1,13 @@
|
|||
2013-08-22 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* gdb.dwarf2/dw2-basic.exp: Use gdb_remote_download.
|
||||
* gdb.dwarf2/dw2-compressed.exp: Use gdb_remote_download.
|
||||
* gdb.dwarf2/dw2-intercu.exp: Use gdb_remote_download.
|
||||
* gdb.dwarf2/dw2-intermix.exp: Use gdb_remote_download.
|
||||
* gdb.dwarf2/dw2-producer.exp: Use gdb_remote_download.
|
||||
* gdb.dwarf2/mac-fileno.exp: Use gdb_remote_download.
|
||||
* lib/gdb.exp (gdb_remote_download): New proc.
|
||||
|
||||
2013-08-22 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* gdb.dwarf2/clztest.exp: Use standard_testfile.
|
||||
|
|
|
@ -29,7 +29,8 @@ if {[prepare_for_testing_full $testfile.exp \
|
|||
return -1
|
||||
}
|
||||
|
||||
set remote_dwarf_srcfile [remote_download host ${srcdir}/${subdir}/${dwarf_srcfile}]
|
||||
set remote_dwarf_srcfile [gdb_remote_download host \
|
||||
${srcdir}/${subdir}/${dwarf_srcfile}]
|
||||
|
||||
gdb_test_no_output "set listsize 1"
|
||||
gdb_test "list func_cu1" "4\[ \t\]+File 1 Line 4"
|
||||
|
|
|
@ -31,7 +31,8 @@ if {[prepare_for_testing_full $testfile.exp \
|
|||
return -1
|
||||
}
|
||||
|
||||
set remote_dwarf_srcfile [remote_download host ${srcdir}/${subdir}/${dwarf_srcfile}]
|
||||
set remote_dwarf_srcfile [gdb_remote_download host \
|
||||
${srcdir}/${subdir}/${dwarf_srcfile}]
|
||||
|
||||
gdb_test_no_output "set listsize 1"
|
||||
gdb_test "list func_cu1" "4\[ \t\]+File 1 Line 4"
|
||||
|
|
|
@ -29,7 +29,8 @@ if {[prepare_for_testing_full $testfile.exp \
|
|||
return -1
|
||||
}
|
||||
|
||||
set remote_dwarf_srcfile [remote_download host ${srcdir}/${subdir}/${dwarf_srcfile}]
|
||||
set remote_dwarf_srcfile [gdb_remote_download host \
|
||||
${srcdir}/${subdir}/${dwarf_srcfile}]
|
||||
|
||||
# This needs to be done first so that the CU for int2 gets expanded first.
|
||||
# This exercises the case where the type for this die is hashed, but we
|
||||
|
|
|
@ -29,7 +29,8 @@ if {[prepare_for_testing_full $testfile.exp \
|
|||
return -1
|
||||
}
|
||||
|
||||
set remote_dwarf_srcfile [remote_download host ${srcdir}/${subdir}/${dwarf_srcfile}]
|
||||
set remote_dwarf_srcfile [gdb_remote_download host \
|
||||
${srcdir}/${subdir}/${dwarf_srcfile}]
|
||||
|
||||
gdb_test_no_output "set listsize 1"
|
||||
gdb_test "list func_cu1" "4\[ \t\]+File 1 Line 4"
|
||||
|
|
|
@ -27,7 +27,8 @@ if {[prepare_for_testing_full $testfile.exp \
|
|||
return -1
|
||||
}
|
||||
|
||||
set remote_dwarf_srcfile [remote_download host ${srcdir}/${subdir}/${dwarf_srcfile}]
|
||||
set remote_dwarf_srcfile [gdb_remote_download host \
|
||||
${srcdir}/${subdir}/${dwarf_srcfile}]
|
||||
|
||||
gdb_test_no_output "set listsize 1"
|
||||
gdb_test "list func_cu1" "4\[ \t\]+File 1 Line 4"
|
||||
|
|
|
@ -30,7 +30,8 @@ if {[prepare_for_testing_full $testfile.exp \
|
|||
return -1
|
||||
}
|
||||
|
||||
set remote_dwarf_srcfile [remote_download host ${srcdir}/${subdir}/${dwarf_srcfile}]
|
||||
set remote_dwarf_srcfile [gdb_remote_download host \
|
||||
${srcdir}/${subdir}/${dwarf_srcfile}]
|
||||
|
||||
gdb_test_no_output "set listsize 1"
|
||||
gdb_test "list func_cu1" "4\[ \t\]+File 1 Line 4"
|
||||
|
|
|
@ -3263,6 +3263,18 @@ proc gdb_touch_execfile { binfile } {
|
|||
}
|
||||
}
|
||||
|
||||
# Like remote_download but provides a gdb-specific behavior. If DEST
|
||||
# is "host", and the host is not remote, and TOFILE is not specified,
|
||||
# then the [file tail] of FROMFILE is passed through
|
||||
# standard_output_file to compute the destination.
|
||||
|
||||
proc gdb_remote_download {dest fromfile {tofile {}}} {
|
||||
if {$dest == "host" && ![is_remote host] && $tofile == ""} {
|
||||
set tofile [standard_output_file [file tail $fromfile]]
|
||||
}
|
||||
return [remote_download $dest $fromfile $tofile]
|
||||
}
|
||||
|
||||
# gdb_download
|
||||
#
|
||||
# Copy a file to the remote target and return its target filename.
|
||||
|
|
Loading…
Reference in a new issue