Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <pedro@palves.net>
To: gdb-patches@sourceware.org
Subject: [PATCH 09/17] Make inferior/GDB share terminal in tests that exercise GDB/inferior reading same input
Date: Thu,  3 Jun 2021 20:02:35 +0100	[thread overview]
Message-ID: <20210603190243.2609886-10-pedro@palves.net> (raw)
In-Reply-To: <20210603190243.2609886-1-pedro@palves.net>

Some testcases exercise some aspect that only makes sense when GDB and
the inferior are sharing the same terminal, meaning GDB and the
inferior are reading from the same input file.

This commit makes sure that continues to be tested even after GDB
changed to put inferiors in their own session/terminal by default, by
issuing "tty /dev/tty".  The tests would fail otherwise.

gdb/testsuite/ChangeLog:
yyyy-mm-dd  Pedro Alves  <pedro@palves.net>

	* gdb.base/annota-input-while-running.exp: Issue "tty /dev/tty"
	before starting program.
	* gdb.base/continue-all-already-running.exp: Likewise.
	* gdb.base/infcall-input.exp: Likewise.

Change-Id: Ia5f9061bf28a5e780194aa75b37b6058de0614ee
---
 .../gdb.base/annota-input-while-running.exp          |  4 ++++
 .../gdb.base/continue-all-already-running.exp        |  3 +++
 gdb/testsuite/gdb.base/infcall-input.exp             | 12 +++++++++++-
 3 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/gdb/testsuite/gdb.base/annota-input-while-running.exp b/gdb/testsuite/gdb.base/annota-input-while-running.exp
index 389cb644517..912565806e8 100644
--- a/gdb/testsuite/gdb.base/annota-input-while-running.exp
+++ b/gdb/testsuite/gdb.base/annota-input-while-running.exp
@@ -22,6 +22,10 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug] == -1} {
     return -1
 }
 
+# This testcase only makes sense when GDB and the inferior are reading
+# from the same input file (aka sharing the terminal's input buffer).
+gdb_test_no_output "tty /dev/tty"
+
 # Because runto_main doesn't know how to handle the prompt with annotations,
 # run to main before we set the annotation level.
 if ![runto_main] then {
diff --git a/gdb/testsuite/gdb.base/continue-all-already-running.exp b/gdb/testsuite/gdb.base/continue-all-already-running.exp
index 23cd9920bc7..e0651bd4d76 100644
--- a/gdb/testsuite/gdb.base/continue-all-already-running.exp
+++ b/gdb/testsuite/gdb.base/continue-all-already-running.exp
@@ -20,6 +20,9 @@ standard_testfile
 
 save_vars { GDBFLAGS } {
     set GDBFLAGS "$GDBFLAGS -ex \"set non-stop on\""
+    # This test only makes sense when GDB and the inferior are reading
+    # from the same input file / sharing the terminal.
+    append GDBFLAGS " -ex \"tty /dev/tty\""
     if { [prepare_for_testing "failed to prepare" ${testfile} $srcfile] } {
 	return -1
     }
diff --git a/gdb/testsuite/gdb.base/infcall-input.exp b/gdb/testsuite/gdb.base/infcall-input.exp
index fec0eb2a4d8..87bd049e139 100644
--- a/gdb/testsuite/gdb.base/infcall-input.exp
+++ b/gdb/testsuite/gdb.base/infcall-input.exp
@@ -23,10 +23,20 @@ if [target_info exists gdb,cannot_call_functions] {
     continue
 }
 
-if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug]} {
+if {[build_executable "failed to compile" $testfile $srcfile debug]} {
     return -1
 }
 
+save_vars { GDBFLAGS } {
+    # This test only makes sense when GDB and the inferior are reading
+    # from the same input file / sharing the terminal.  If we instead
+    # let GDB put the inferior in its own session, then while the
+    # inferior is running in the foreground, input would be redirected
+    # to the inferior, and GDB would never see that input.
+    append GDBFLAGS " -ex \"tty /dev/tty\""
+    clean_restart $binfile
+}
+
 if ![runto_main] then {
     fail "couldn't run to main"
     return -1
-- 
2.26.2


  parent reply	other threads:[~2021-06-03 19:06 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-03 19:02 [PATCH 00/17] Interrupting programs that block/ignore SIGINT Pedro Alves
2021-06-03 19:02 ` [PATCH 01/17] Test interrupting programs that block SIGINT [gdb/9425, gdb/14559] Pedro Alves
2021-06-03 19:02 ` [PATCH 02/17] prefork_hook: Remove 'args' parameter Pedro Alves
2021-06-03 19:02 ` [PATCH 03/17] Fix silent gdb.base/annota1.exp test coverage regression Pedro Alves
2021-06-03 19:28   ` Andrew Burgess
2021-06-14 20:30     ` Pedro Alves
2021-06-03 19:02 ` [PATCH 04/17] Make gdb.base/long-inferior-output.exp fail fast Pedro Alves
2021-06-03 19:02 ` [PATCH 05/17] Fix gdb.multi/multi-term-settings.exp race Pedro Alves
2021-06-03 19:02 ` [PATCH 06/17] Don't check parent pid in gdb.threads/{ia64-sigill, siginfo-threads, watchthreads-reorder}.c Pedro Alves
2021-06-03 19:02 ` [PATCH 07/17] Special-case "set inferior-tty /dev/tty" Pedro Alves
2021-06-03 19:02 ` [PATCH 08/17] Make inferior/GDB share terminal in run+detach testcases Pedro Alves
2021-07-02 19:31   ` Tom Tromey
2021-06-03 19:02 ` Pedro Alves [this message]
2021-06-03 19:02 ` [PATCH 10/17] gdb.mi/mi-logging.exp, don't send input to GDB while the inferior is running Pedro Alves
2021-06-03 19:02 ` [PATCH 11/17] target_terminal::ours_for_output before printing signal received Pedro Alves
2021-06-03 19:02 ` [PATCH 12/17] Move scoped_ignore_sigttou to gdbsupport/ Pedro Alves
2021-06-03 19:02 ` [PATCH 13/17] Always put inferiors in their own terminal/session [gdb/9425, gdb/14559] Pedro Alves
2021-06-03 19:02 ` [PATCH 14/17] exists_non_stop_target: Avoid flushing frames Pedro Alves
2021-06-03 19:02 ` [PATCH 15/17] convert previous_inferior_ptid to strong reference to thread_info Pedro Alves
2021-06-03 19:02 ` [PATCH 16/17] GNU/Linux: Interrupt/Ctrl-C with SIGSTOP instead of SIGINT [PR gdb/9425, PR gdb/14559] Pedro Alves
2021-06-03 19:02 ` [PATCH 17/17] Document pseudo-terminal and interrupting changes Pedro Alves
2021-06-03 19:28   ` Eli Zaretskii via Gdb-patches
2021-06-03 19:51 ` [PATCH 00/17] Interrupting programs that block/ignore SIGINT Eli Zaretskii via Gdb-patches
2021-06-13 10:41   ` Eli Zaretskii via Gdb-patches
2021-06-14 16:29     ` Pedro Alves
2021-06-14 17:10       ` Eli Zaretskii via Gdb-patches
2021-06-14 17:55   ` Pedro Alves
2021-06-15 12:18     ` Eli Zaretskii via Gdb-patches
2021-06-15 15:50       ` John Baldwin
2021-06-15 16:18         ` Eli Zaretskii via Gdb-patches
2021-06-15 16:41           ` John Baldwin
2021-06-16 10:01             ` Pedro Alves
2021-06-16 12:10               ` Eli Zaretskii via Gdb-patches
2021-06-16 15:06               ` John Baldwin
2021-07-02 19:35 ` Tom Tromey

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=20210603190243.2609886-10-pedro@palves.net \
    --to=pedro@palves.net \
    --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