[gdb/testsuite] Fix gdb.base/solib-vanish.exp for remote target
authorTom de Vries <tdevries@suse.de>
Tue, 15 Nov 2022 14:24:54 +0000 (15:24 +0100)
committerTom de Vries <tdevries@suse.de>
Tue, 15 Nov 2022 14:24:54 +0000 (15:24 +0100)
When running test-case gdb.base/solib-vanish.exp with target board
remote-gdbserver-on-localhost (using REMOTE_TARGET_USERNAME) we run into some
failures.

Fix these by adding the missing gdb_load_shlib.

Tested on x86_64-linux.

Co-Authored-by: Ivan Tetyushkin <ivan.tetyushkin@syntacore.com>
gdb/testsuite/gdb.base/solib-vanish.exp

index 5f47f2a80fd37c1ec2b241aeef53d6b633da4368..57e0b684dc8ec1b5e67b576afc71340296edbd53 100644 (file)
@@ -69,22 +69,35 @@ set srcfile_lib1 ${srcdir}/${subdir}/${lib1name}.c
 set binfile_lib1 [standard_output_file ${lib1name}.so]
 set lib1_flags [list debug shlib=${binfile_lib2}]
 
+if { [gdb_compile_shlib ${srcfile_lib2} ${binfile_lib2} $lib2_flags] != ""
+     || [gdb_compile_shlib ${srcfile_lib1} ${binfile_lib1} $lib1_flags] != "" } {
+    untested "failed to compile"
+    return -1
+}
+
 # Main program
 set testfile "solib-vanish-main"
 set srcfile ${srcdir}/${subdir}/${testfile}.c
 set executable ${testfile}
 set binfile [standard_output_file ${executable}]
-set bin_flags [list debug shlib_load additional_flags=-DVANISH_LIB=\"${binfile_lib1}\"]
+set bin_flags [list debug shlib_load]
+set binfile_lib1_target [gdb_download_shlib $binfile_lib1]
+lappend bin_flags additional_flags=-DVANISH_LIB=\"$binfile_lib1_target\"
 
-if { [gdb_compile_shlib ${srcfile_lib2} ${binfile_lib2} $lib2_flags] != ""
-     || [gdb_compile_shlib ${srcfile_lib1} ${binfile_lib1} $lib1_flags] != ""
-     || [gdb_compile ${srcfile} ${binfile} executable $bin_flags] != "" } {
+if {[is_remote target]} {
+    lappend cleanfiles_target $binfile_lib1_target.renamed
+}
+
+if { [gdb_compile ${srcfile} ${binfile} executable $bin_flags] != "" } {
     untested "failed to compile"
     return -1
 }
 
 clean_restart $testfile
 
+gdb_locate_shlib $binfile_lib1
+gdb_load_shlib $binfile_lib2
+
 if { ![runto_main] } {
     return
 }