[pushed,gdb/testsuite] Set remotedir in local-remote-host-native.exp

Message ID 20230321100819.1789-1-tdevries@suse.de
State Committed
Headers
Series [pushed,gdb/testsuite] Set remotedir in local-remote-host-native.exp |

Commit Message

Tom de Vries March 21, 2023, 10:08 a.m. UTC
  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.
---
 .../boards/local-remote-host-native.exp       | 25 +++++++++++++++++++
 gdb/testsuite/gdb.testsuite/board-sanity.exp  |  7 ------
 2 files changed, 25 insertions(+), 7 deletions(-)


base-commit: fec61519220148421595a21173f74401416d8d54
  

Patch

diff --git a/gdb/testsuite/boards/local-remote-host-native.exp b/gdb/testsuite/boards/local-remote-host-native.exp
index 911310b3072..2851eb09324 100644
--- a/gdb/testsuite/boards/local-remote-host-native.exp
+++ b/gdb/testsuite/boards/local-remote-host-native.exp
@@ -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
 
diff --git a/gdb/testsuite/gdb.testsuite/board-sanity.exp b/gdb/testsuite/gdb.testsuite/board-sanity.exp
index eb19db8699b..835707c9187 100644
--- a/gdb/testsuite/gdb.testsuite/board-sanity.exp
+++ b/gdb/testsuite/gdb.testsuite/board-sanity.exp
@@ -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