From 58d8e5fab3798ed91378b661088f5e6b175bbd98 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Sat, 29 Oct 2022 09:43:32 +0200 Subject: [PATCH] [gdb/testsuite] Use ssh -t in remote-*.exp When running test-case gdb.server/multi-ui-errors.exp on target board remote-gdbserver-on-localhost.exp, I run into: ... (gdb) PASS: gdb.server/multi-ui-errors.exp: connect to gdbserver continue^M Continuing.^M PASS: gdb.server/multi-ui-errors.exp: continue - extra UI Remote debugging from host ::1, port 35466^M FAIL: gdb.server/multi-ui-errors.exp: ensure inferior is running ... The problem is that the target board uses ssh -T, which fails to guarantee that output from the inferior will be available. Fix this by copying proc ${board}_spawn from local-remote-host.exp, which ensures using ssh -t. [ It would be nice to define an ssh base board to get rid of the copies, but I'm not addressing that in this commit. ] Likewise for target board remote-stdio-gdbserver.exp. Tested on x86_64-linux. --- .../boards/remote-gdbserver-on-localhost.exp | 12 ++++++++++++ gdb/testsuite/boards/remote-stdio-gdbserver.exp | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp b/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp index 27224d39d0b..dacbbfb6f28 100644 --- a/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp +++ b/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp @@ -32,6 +32,18 @@ set_board_info protocol standard set_board_info username $env(USER) set_board_info hostname localhost +proc ${board}_spawn { board cmd } { + global board_info + + set remote [board_info $board hostname] + set username [board_info $board username] + set RSH [board_info $board rsh_prog] + + spawn $RSH -t -l $username $remote $cmd + set board_info($board,fileid) $spawn_id + return $spawn_id +} + # We will be using the standard GDB remote protocol set_board_info gdb_protocol "remote" diff --git a/gdb/testsuite/boards/remote-stdio-gdbserver.exp b/gdb/testsuite/boards/remote-stdio-gdbserver.exp index e1a2d0ed007..498526b7870 100644 --- a/gdb/testsuite/boards/remote-stdio-gdbserver.exp +++ b/gdb/testsuite/boards/remote-stdio-gdbserver.exp @@ -78,3 +78,15 @@ proc ${board}_file { dest op args } { } return [eval [list standard_file $dest $op] $args] } + +proc ${board}_spawn { board cmd } { + global board_info + + set remote [board_info $board hostname] + set username [board_info $board username] + set RSH [board_info $board rsh_prog] + + spawn $RSH -t -l $username $remote $cmd + set board_info($board,fileid) $spawn_id + return $spawn_id +} -- 2.30.2