From: Tom de Vries <tdevries@suse.de>
To: gdb-patches@sourceware.org
Subject: [committed][gdb/testsuite] Fix host board local-remote-host-notty.exp timeouts
Date: Fri, 14 Oct 2022 20:00:07 +0200 [thread overview]
Message-ID: <20221014180006.GA19542@delia.home> (raw)
Hi,
With test-case gdb.server/stop-reply-no-thread-multi.exp and host board
local-remote-host-notty.exp we occasionally run into a silent out, due to
getting:
...
(gdb) kill^M
(gdb) The program is not being run.^M
...
instead of the expected:
...
(gdb) kill^M
The program is not being run.^M
(gdb)
...
Likewise, we occasionally run into a nonsilent timeout:
...
(gdb) disconnect^M
(gdb) You can't do that when your target is `exec'^M
FAIL: gdb.server/stop-reply-no-thread.exp: to_disable=Tthread: t_nonstop=on: \
disconnect (timeout)
...
Typically, this results in the test-case taking more than two minutes to run.
The problem can be reproduced using just:
...
$ ssh -l $USER 127.0.0.1 gdb -q -ex kill
...
Note that ssh by default uses -T which disables pseudo-tty allocation (as
opposed to -t which forces pseudo-tty allocation):
...
$ ssh -l $USER 127.0.0.1 -T tty
not a tty
$ ssh -l $USER 127.0.0.1 -t tty
/dev/pts/5
Connection to 127.0.0.1 closed.
...
and according to https://stackoverflow.com/a/63241102 the behaviour we're
seeing is specific to using '-T'.
The related host board local-remote-host.exp does use '-t', and the only
difference between the two boards mentioned is whether editing is on or off.
Fix this by:
- moving the content of local-remote-host-notty.exp into
local-remote-host.exp
- consequently, extending the copyright years in local-remote-host.exp
- including local-remote-host.exp in local-remote-host-notty.exp
(making local-remote-host-notty.exp use '-t')
- adding -iex "set editing off" to GDBFLAGS in local-remote-host-notty.exp
This results in the test-case taking just 6 seconds to run.
Tested on x86_64-linux.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29669
Committed to trunk.
Thanks,
- Tom
[gdb/testsuite] Fix host board local-remote-host-notty.exp timeouts
---
gdb/testsuite/boards/local-remote-host-notty.exp | 34 +++-----------------
gdb/testsuite/boards/local-remote-host.exp | 41 ++++++++++++++++++++++--
2 files changed, 43 insertions(+), 32 deletions(-)
diff --git a/gdb/testsuite/boards/local-remote-host-notty.exp b/gdb/testsuite/boards/local-remote-host-notty.exp
index b858122afe0..88a431ca775 100644
--- a/gdb/testsuite/boards/local-remote-host-notty.exp
+++ b/gdb/testsuite/boards/local-remote-host-notty.exp
@@ -18,36 +18,10 @@
#
# To use this file:
# bash$ cd ${build_dir}/gdb
-# bash$ make check RUNTESTFLAGS="--host_board=local-remote-host"
+# bash$ make check RUNTESTFLAGS="--host_board=local-remote-host-notty"
-global GDB
-set GDB [file join [pwd] "../gdb"]
+# Like local-remote-host, but with readline/editing disabled.
-set_board_info hostname 127.0.0.1
+load_board_description "local-remote-host"
-set_board_info username $env(USER)
-
-# 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"
-
-proc ${board}_file { dest op args } {
- if { $op == "delete" } {
- return 0
- }
- return [eval [list standard_file $dest $op] $args]
-}
-
-proc ${board}_download { board src dest } {
-
- # If file name is a relative, convert it to absolute, otherwise file can't
- # be found on host, because the current directory usually is /home/$USER.
- # This also bypasses the real download to the host.
- if { [file pathtype $src] == "relative" } {
- return [file join [pwd] $src]
- } else {
- return $src
- }
-}
+set GDBFLAGS "${GDBFLAGS} -iex \"set editing off\""
diff --git a/gdb/testsuite/boards/local-remote-host.exp b/gdb/testsuite/boards/local-remote-host.exp
index 8d69a568f23..fc87dd48014 100644
--- a/gdb/testsuite/boards/local-remote-host.exp
+++ b/gdb/testsuite/boards/local-remote-host.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2022 Free Software Foundation, Inc.
+# Copyright 2012-2022 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -13,9 +13,46 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# This file is a dejagnu "board file" and is used to run the testsuite
+# against local host, in remote host mode.
+#
+# To use this file:
+# bash$ cd ${build_dir}/gdb
+# bash$ make check RUNTESTFLAGS="--host_board=local-remote-host"
+
# Like local-remote-host-notty, but with readline/editing enabled.
-load_board_description "local-remote-host-notty"
+global GDB
+set GDB [file join [pwd] "../gdb"]
+
+set_board_info hostname 127.0.0.1
+
+set_board_info username $env(USER)
+
+# 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"
+
+proc ${board}_file { dest op args } {
+ if { $op == "delete" } {
+ return 0
+ }
+ return [eval [list standard_file $dest $op] $args]
+}
+
+proc ${board}_download { board src dest } {
+
+ # If file name is a relative, convert it to absolute, otherwise file can't
+ # be found on host, because the current directory usually is /home/$USER.
+ # This also bypasses the real download to the host.
+ if { [file pathtype $src] == "relative" } {
+ return [file join [pwd] $src]
+ } else {
+ return $src
+ }
+}
# Like standard_spawn, but force pseudo-tty allocation, with 'ssh -t'.
reply other threads:[~2022-10-14 18:00 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221014180006.GA19542@delia.home \
--to=tdevries@suse.de \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).