[gdb/testsuite] Set remotedir in local-remote-host-native.exp
authorTom de Vries <tdevries@suse.de>
Tue, 21 Mar 2023 10:07:19 +0000 (11:07 +0100)
committerTom de Vries <tdevries@suse.de>
Tue, 21 Mar 2023 10:07:19 +0000 (11:07 +0100)
In commit ff581559f9d ("[gdb/testsuite] Add gdb.testsuite/board-sanity.exp") I
removed handling of HOST_DIR in local-remote-host-native.exp to fix FAILs
in test-case gdb.testsuite/board-sanity.exp.

Reintroduce handling of HOST_DIR using remotedir, now that using remotedir for
a host board no longer make compilation fail due to commit 80d6c79866f
("[gdb/testsuite] Handle remotedir in remote_upload").

This fixes an XFAIL in gdb.testsuite/board-sanity.exp, introduced in commit
3741934fdb0 ("[gdb/testsuite] Set remotedir by default in some boards").

Tested on x86_64-linux.

gdb/testsuite/boards/local-remote-host-native.exp
gdb/testsuite/gdb.testsuite/board-sanity.exp

index 911310b30729769d7eabbd82ce078e257d112678..2851eb0932487046075c6d08ffa9d9eca0c22206 100644 (file)
@@ -44,12 +44,37 @@ set_board_info hostname 127.0.0.1
 
 set_board_info username $env(USER)
 
+save_vars {rsh_cmd res} {
+    set rsh_cmd \
+       [join \
+            [list \
+                 [board_info $board rsh_prog] \
+                 -l [board_info $board username] \
+                 [board_info $board hostname]]]
+
+    if [info exists HOST_DIR] {
+       set_board_info remotedir $HOST_DIR
+    } else {
+       # Set remotedir by default, to force remote_download target to give an
+       # absolute file name.
+       set res [remote_exec build $rsh_cmd pwd]
+       if { [lindex $res 0] != 0 } {
+           error "Couldn't set remotedir using pwd"
+       }
+       set_board_info remotedir [string trim [lindex $res 1]]
+    }
+}
+
 # The ssh key should be correctly set up that you ssh to 127.0.0.1
 # without having to type password.
 set_board_info rsh_prog /usr/bin/ssh
 set_board_info rcp_prog /usr/bin/scp
 set_board_info file_transfer "rsh"
 
+if { $board_type == "host" } {
+    set_board_info gdb_opts "-d \"${HOST_DIR}\""
+}
+
 proc ${board}_spawn { board cmd } {
     global board_info
 
index eb19db8699b958a152cec34392cef8810b7351bd..835707c9187cfa7d1e38486309d56db060f3a3e9 100644 (file)
@@ -137,13 +137,6 @@ proc_with_prefix gdb_simple_compile_and_run {} {
     set result [remote_exec target $target_obj]
     set status [lindex $result 0]
     set output [lindex $result 1]
-
-    if { [host_info name] == "local-remote-host-native"
-        && [target_info name] == "local-remote-host-native" } {
-       # Setting remotedir on this board has effect on both host and
-       # target, and it seems to broken for host.  Xfail this for now.
-       setup_xfail *-*-*
-    }
     gdb_assert { $status == 0 && $output == "" }
 
     remote_file build delete $obj