diff options
author | Tom de Vries <tdevries@suse.de> | 2022-10-29 09:43:32 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2022-10-29 09:43:32 +0200 |
commit | 58d8e5fab3798ed91378b661088f5e6b175bbd98 (patch) | |
tree | f2227f76e219faaa9a13a3c4e092d68a8d593784 | |
parent | 8db6f1bd27086c9623e2b8eb8d01bc4c0a863ca7 (diff) | |
download | gdb-58d8e5fab3798ed91378b661088f5e6b175bbd98.zip gdb-58d8e5fab3798ed91378b661088f5e6b175bbd98.tar.gz gdb-58d8e5fab3798ed91378b661088f5e6b175bbd98.tar.bz2 |
[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.
-rw-r--r-- | gdb/testsuite/boards/remote-gdbserver-on-localhost.exp | 12 | ||||
-rw-r--r-- | gdb/testsuite/boards/remote-stdio-gdbserver.exp | 12 |
2 files changed, 24 insertions, 0 deletions
diff --git a/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp b/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp index 27224d3..dacbbfb 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 e1a2d0e..498526b 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 +} |