[gdb/testsuite] Fix gdb.arch/amd64*.exp with local-remote-host-native.exp
authorTom de Vries <tdevries@suse.de>
Wed, 15 Mar 2023 15:38:03 +0000 (16:38 +0100)
committerTom de Vries <tdevries@suse.de>
Wed, 15 Mar 2023 15:38:03 +0000 (16:38 +0100)
There's a number of gdb.arch/amd64*.exp test-cases that fail with host+target
board local-remote-host-native.exp because of using a .S file, generated from
a .c file.

If a test-case compiles the .S file when executing on remote host,
the .S file is already copied from build to host, such that it's available for
the compiler.

But that's not the case for the .c file, which is needed by gdb to show a
source line:
...
(gdb) continue^M
Continuing.^M
^M
Breakpoint 2, fn2 (y=y@entry=25, x=x@entry=6) at amd64-entry-value-inline.c:32^M
32      in gdb.arch/amd64-entry-value-inline.c^M
(gdb) FAIL: gdb.arch/amd64-entry-value-inline.exp: continue to breakpoint: \
  break-here
...

Fix this by using "gdb_remote_download host <.c file>".

Tested on x86_64-linux, with host+target board local-remote-host-native.

gdb/testsuite/gdb.arch/amd64-entry-value-inline.exp
gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.exp
gdb/testsuite/gdb.arch/amd64-entry-value-param.exp
gdb/testsuite/gdb.arch/amd64-entry-value-paramref.exp
gdb/testsuite/gdb.arch/amd64-tailcall-ret.exp

index 774b90bcdb0f7409c6d38cfc031d9eff671d6371..d9920146fa41414b6303d007d883190527d533a5 100644 (file)
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 set opts {}
-standard_testfile .S
+standard_testfile .S .c
 
 if [info exists COMPILE] {
     # make check RUNTESTFLAGS="gdb.arch/amd64-entry-value-inline.exp COMPILE=1"
-    standard_testfile
+    standard_testfile .c .c
     lappend opts debug optimize=-O2
 } else {
     require is_x86_64_m64_target
 }
 
+# Make .c available on the host.
+if [is_remote host] {
+    gdb_remote_download host $srcdir/$subdir/$srcfile2
+}
+
 if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
     return -1
 }
@@ -32,8 +37,7 @@ if ![runto_main] {
     return -1
 }
 
-set srcfile $testfile.c
-gdb_breakpoint [gdb_get_line_number "break-here"]
+gdb_breakpoint [gdb_get_line_number "break-here" $srcfile2]
 
 gdb_continue_to_breakpoint "break-here" ".* break-here .*"
 gdb_test "p y" " = 25"
index f6d11b26cc795fb463065b79a9b9d3a651eb484f..17a92bdcbf5c892297b2d9b14c7a7b9f650e42f0 100644 (file)
@@ -18,12 +18,17 @@ set opts {}
 
 if [info exists COMPILE] {
     # make check RUNTESTFLAGS="gdb.arch/amd64-entry-value-param-dwarf5.exp COMPILE=1"
-    set srcfile ${srcfile2}
+    standard_testfile .c .c
     lappend opts optimize=-O2 additional_flags=-gdwarf-5
 } else {
     require is_x86_64_m64_target
 }
 
+# Make .c available on the host.
+if [is_remote host] {
+    gdb_remote_download host $srcdir/$subdir/$srcfile2
+}
+
 if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
     return -1
 }
@@ -32,8 +37,7 @@ if ![runto_main] {
     return -1
 }
 
-set srcfile $srcfile2
-gdb_breakpoint [gdb_get_line_number "break-here"]
+gdb_breakpoint [gdb_get_line_number "break-here" $srcfile2]
 
 with_test_prefix "call 1" {
     gdb_continue_to_breakpoint "break-here" ".* break-here .*"
index da1445f51c2a70377a9bb3041974ef43f3852e0f..504c534d6545a1e61b63152c3aee80f4398bb4fb 100644 (file)
@@ -18,12 +18,17 @@ set opts {}
 
 if [info exists COMPILE] {
     # make check RUNTESTFLAGS="gdb.arch/amd64-entry-value-param.exp COMPILE=1"
-    set srcfile ${srcfile2}
+    standard_testfile .c .c
     lappend opts debug optimize=-O2
 } else {
     require is_x86_64_m64_target
 }
 
+# Make .c available on the host.
+if [is_remote host] {
+    remote_download host $srcdir/$subdir/$srcfile2
+}
+
 if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
     return -1
 }
@@ -32,8 +37,7 @@ if ![runto_main] {
     return -1
 }
 
-set srcfile $srcfile2
-gdb_breakpoint [gdb_get_line_number "break-here"]
+gdb_breakpoint [gdb_get_line_number "break-here" $srcfile2]
 
 with_test_prefix "call 1" {
     gdb_continue_to_breakpoint "break-here" ".* break-here .*"
index ff3e0242e9a8523e453251cbd1642f37bc35b0fd..4b4f507dd8257f7330996bea4b5f6776bcbdd3d8 100644 (file)
@@ -17,6 +17,11 @@ standard_testfile .S .cc
 
 require is_x86_64_m64_target
 
+# Make .cc available on the host.
+if [is_remote host] {
+    gdb_remote_download host $srcdir/$subdir/$srcfile2
+}
+
 if { [prepare_for_testing_full "failed to prepare" \
          [list $testfile "c++" $srcfile {}]] } {
     return -1
@@ -26,8 +31,7 @@ if ![runto_main] {
     return -1
 }
 
-set srcfile $srcfile2
-gdb_breakpoint [gdb_get_line_number "break-here"]
+gdb_breakpoint [gdb_get_line_number "break-here" $srcfile2]
 
 gdb_continue_to_breakpoint "break-here" ".* break-here .*"
 gdb_test "frame" {bar \(ref=@0x[0-9a-f]+: 10, ref@entry=@0x[0-9a-f]+: <optimized out>\) at .*}
index 1602aff5dc5271658ee1c8aec460537754f50e9c..5ba435e5e72acd150c5ce6fb5e442d14dcf6049e 100644 (file)
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 set opts {}
-standard_testfile .S
+standard_testfile .S .c
 
 if [info exists COMPILE] {
     # make check RUNTESTFLAGS="gdb.arch/amd64-tailcall-ret.exp COMPILE=1"
-    standard_testfile
+    standard_testfile .c .c
     lappend opts debug optimize=-O2
 } else {
     require is_x86_64_m64_target
 }
 
+# Make .c available on the host.
+if [is_remote host] {
+    gdb_remote_download host $srcdir/$subdir/$srcfile2
+}
+
 if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
     return -1
 }