[pushed] gdb/testsuite: make some tests in gdb.base enable non-stop using GDBFLAGS

Simon Marchi simon.marchi@efficios.com
Wed Dec 16 21:47:43 GMT 2020


For the same reason as explained in commit 7cb2893dfab1 ("gdb/testsuite:
gdb.mi/mi-nonstop-exit.exp: enable non-stop using GDBFLAGS").

Note that the use of

    set GDBFLAGS "$GDBFLAGS ..."

instead of

    append GDBFLAGS "..."

is intentional.  "append" is silent when appending to a non-existent
variable.  So if this code if moved to a proc (as is the case already
for step-sw-breakpoint-adjust-pc.exp) and we forget to add "global
GDBFLAGS", the flag won't be added to the global GDBFLAGS, and we won't
actually enable non-stop, and it might go unnoticed.  Using the "set"
version will turn into an error if we forget the "global".

This makes these test work correctly with native-extended-gdbserver.
Some of them were silently failing because we runto_main is silent when
it fails.

gdb/testsuite/ChangeLog:

	* gdb.base/async-shell.exp: Enable non-stop through GDBFLAGS.
	* gdb.base/continue-all-already-running.exp: Likewise.
	* gdb.base/moribund-step.exp: Likewise.
	* gdb.base/step-sw-breakpoint-adjust-pc.exp: Likewise.

Change-Id: I19ef05d07a0ec4a9c9476af2ba6e1ea1159ee437
---
 gdb/testsuite/ChangeLog                                 | 7 +++++++
 gdb/testsuite/gdb.base/async-shell.exp                  | 8 +++++---
 gdb/testsuite/gdb.base/continue-all-already-running.exp | 9 +++++----
 gdb/testsuite/gdb.base/moribund-step.exp                | 9 +++++----
 gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp | 7 +++++--
 5 files changed, 27 insertions(+), 13 deletions(-)

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 3a7fc0c90302..e48a6fe0ec1f 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2020-12-16  Simon Marchi  <simon.marchi@efficios.com>
+
+	* gdb.base/async-shell.exp: Enable non-stop through GDBFLAGS.
+	* gdb.base/continue-all-already-running.exp: Likewise.
+	* gdb.base/moribund-step.exp: Likewise.
+	* gdb.base/step-sw-breakpoint-adjust-pc.exp: Likewise.
+
 2020-12-16  Tom de Vries  <tdevries@suse.de>
 
 	* gdb.base/batch-preserve-term-settings.exp:
diff --git a/gdb/testsuite/gdb.base/async-shell.exp b/gdb/testsuite/gdb.base/async-shell.exp
index 001a9ed05a22..ad7813aac71b 100644
--- a/gdb/testsuite/gdb.base/async-shell.exp
+++ b/gdb/testsuite/gdb.base/async-shell.exp
@@ -25,13 +25,15 @@ if [use_gdb_stub] {
     return 0
 }
 
-if { [prepare_for_testing "failed to prepare" ${testfile} $srcfile] } {
-    return -1
+save_vars { GDBFLAGS } {
+    set GDBFLAGS "$GDBFLAGS -ex \"set non-stop on\""
+    if { [prepare_for_testing "failed to prepare" ${testfile} $srcfile] } {
+	return -1
+    }
 }
 
 set gdbindex_warning_re "warning: Skipping \[^\r\n\]+ \\.gdb_index section \[^\r\n\]*\r\nDo \"set use-deprecated-index-sections on\" before the file is read\r\nto use the section anyway\\."
 
-gdb_test_no_output "set non-stop on"
 gdb_test "run &" "Starting program: \[^\r\n\]*(\r\n$gdbindex_warning_re)?"
 
 # `sleep 5' here would workaround the bug, do not sleep here.
diff --git a/gdb/testsuite/gdb.base/continue-all-already-running.exp b/gdb/testsuite/gdb.base/continue-all-already-running.exp
index cfd586ff9906..39435814d2bf 100644
--- a/gdb/testsuite/gdb.base/continue-all-already-running.exp
+++ b/gdb/testsuite/gdb.base/continue-all-already-running.exp
@@ -18,12 +18,13 @@
 
 standard_testfile
 
-if { [prepare_for_testing "failed to prepare" ${testfile} $srcfile] } {
-    return -1
+save_vars { GDBFLAGS } {
+    set GDBFLAGS "$GDBFLAGS -ex \"set non-stop on\""
+    if { [prepare_for_testing "failed to prepare" ${testfile} $srcfile] } {
+	return -1
+    }
 }
 
-gdb_test_no_output "set non-stop on"
-
 if ![runto_main] {
     return
 }
diff --git a/gdb/testsuite/gdb.base/moribund-step.exp b/gdb/testsuite/gdb.base/moribund-step.exp
index 2e783d3aebba..24ffb61b0293 100644
--- a/gdb/testsuite/gdb.base/moribund-step.exp
+++ b/gdb/testsuite/gdb.base/moribund-step.exp
@@ -20,12 +20,13 @@ if { ![support_displaced_stepping] } {
     return -1
 }
 
-if { [prepare_for_testing "failed to prepare" ${testfile} $srcfile] } {
-    return -1
+save_vars { GDBFLAGS } {
+    set GDBFLAGS "$GDBFLAGS -ex \"set non-stop on\""
+    if { [prepare_for_testing "failed to prepare" ${testfile} $srcfile] } {
+	return -1
+    }
 }
 
-gdb_test_no_output "set non-stop on"
-
 if ![runto_main] {
     return
 }
diff --git a/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp b/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp
index 7b9a02c91be4..528200826bbe 100644
--- a/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp
+++ b/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp
@@ -32,10 +32,13 @@ proc test {non_stop displaced always_inserted} {
     global binfile
     global linenum_for_user_bp
     global linenum_for_step_resume
+    global GDBFLAGS
 
-    clean_restart $binfile
+    save_vars { GDBFLAGS } {
+	set GDBFLAGS "$GDBFLAGS -ex \"set non-stop $non_stop\""
+	clean_restart $binfile
+    }
 
-    gdb_test_no_output "set non-stop $non_stop"
     gdb_test_no_output "set displaced-stepping $displaced"
     gdb_test_no_output "set breakpoint always-inserted $always_inserted"
 
-- 
2.26.2



More information about the Gdb-patches mailing list