aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorAndrew Burgess <aburgess@redhat.com>2023-02-18 20:52:40 +0000
committerAndrew Burgess <aburgess@redhat.com>2023-02-28 10:56:28 +0000
commit47171eeb9468fd38e3785b0181d63a2abea3bf29 (patch)
tree2b93b46f275ffcdecd531909e34c5a4e4b7e9208 /gdb
parent292deeba7d6e0f1df99fff8c18000a1a3c481f3a (diff)
downloadbinutils-47171eeb9468fd38e3785b0181d63a2abea3bf29.zip
binutils-47171eeb9468fd38e3785b0181d63a2abea3bf29.tar.gz
binutils-47171eeb9468fd38e3785b0181d63a2abea3bf29.tar.bz2
gdb/testsuite: introduce is_target_non_stop helper proc
I noticed that several tests included copy & pasted code to run the 'maint show target-non-stop' command, and then switch based on the result. In this commit I factor this code out into a helper proc in lib/gdb.exp, and update all the places I could find that used this pattern to make use of the helper proc. There should be no change in what is tested after this commit. Reviewed-By: Pedro Alves <pedro@palves.net>
Diffstat (limited to 'gdb')
-rw-r--r--gdb/testsuite/gdb.base/access-mem-running.exp10
-rw-r--r--gdb/testsuite/gdb.base/fork-running-state.exp11
-rw-r--r--gdb/testsuite/gdb.threads/access-mem-running-thread-exit.exp10
-rw-r--r--gdb/testsuite/gdb.threads/clone-attach-detach.exp11
-rw-r--r--gdb/testsuite/gdb.threads/detach-step-over.exp8
-rw-r--r--gdb/testsuite/lib/gdb.exp22
6 files changed, 36 insertions, 36 deletions
diff --git a/gdb/testsuite/gdb.base/access-mem-running.exp b/gdb/testsuite/gdb.base/access-mem-running.exp
index 90ddedc..d0f7871 100644
--- a/gdb/testsuite/gdb.base/access-mem-running.exp
+++ b/gdb/testsuite/gdb.base/access-mem-running.exp
@@ -46,13 +46,9 @@ proc test { non_stop } {
&& ([target_info gdb_protocol] == "remote"
|| [target_info gdb_protocol] == "extended-remote")} {
- gdb_test_multiple "maint show target-non-stop" "" {
- -wrap -re "(is|currently) on.*" {
- }
- -wrap -re "(is|currently) off.*" {
- unsupported "can't issue commands while target is running"
- return 0
- }
+ if {![is_target_non_stop]} {
+ unsupported "can't issue commands while target is running"
+ return 0
}
}
diff --git a/gdb/testsuite/gdb.base/fork-running-state.exp b/gdb/testsuite/gdb.base/fork-running-state.exp
index b8045ad..9a18193 100644
--- a/gdb/testsuite/gdb.base/fork-running-state.exp
+++ b/gdb/testsuite/gdb.base/fork-running-state.exp
@@ -46,14 +46,9 @@ proc do_test { detach_on_fork follow_fork non_stop schedule_multiple } {
&& ([target_info gdb_protocol] == "remote"
|| [target_info gdb_protocol] == "extended-remote")} {
- set test "maint show target-non-stop"
- gdb_test_multiple "maint show target-non-stop" $test {
- -re "(is|currently) on.*$gdb_prompt $" {
- }
- -re "(is|currently) off.*$gdb_prompt $" {
- unsupported "can't issue info threads while target is running"
- return 0
- }
+ if {![is_target_non_stop]} {
+ unsupported "can't issue info threads while target is running"
+ return 0
}
}
diff --git a/gdb/testsuite/gdb.threads/access-mem-running-thread-exit.exp b/gdb/testsuite/gdb.threads/access-mem-running-thread-exit.exp
index 09b0548..2d3ace4 100644
--- a/gdb/testsuite/gdb.threads/access-mem-running-thread-exit.exp
+++ b/gdb/testsuite/gdb.threads/access-mem-running-thread-exit.exp
@@ -65,13 +65,9 @@ proc test { non_stop } {
&& ([target_info gdb_protocol] == "remote"
|| [target_info gdb_protocol] == "extended-remote")} {
- gdb_test_multiple "maint show target-non-stop" "" {
- -wrap -re "(is|currently) on.*" {
- }
- -wrap -re "(is|currently) off.*" {
- unsupported "can't issue commands while target is running"
- return 0
- }
+ if {![is_target_non_stop]} {
+ unsupported "can't issue commands while target is running"
+ return 0
}
}
diff --git a/gdb/testsuite/gdb.threads/clone-attach-detach.exp b/gdb/testsuite/gdb.threads/clone-attach-detach.exp
index ac9b92d..a71713e 100644
--- a/gdb/testsuite/gdb.threads/clone-attach-detach.exp
+++ b/gdb/testsuite/gdb.threads/clone-attach-detach.exp
@@ -64,14 +64,9 @@ if {[target_info exists gdb_protocol]
&& ([target_info gdb_protocol] == "remote"
|| [target_info gdb_protocol] == "extended-remote")} {
- set test "maint show target-non-stop"
- gdb_test_multiple "maint show target-non-stop" $test {
- -re "(is|currently) on.*$gdb_prompt $" {
- }
- -re "(is|currently) off.*$gdb_prompt $" {
- unsupported "bg attach: can't issue info threads while target is running"
- return 0
- }
+ if {![is_target_non_stop]} {
+ unsupported "bg attach: can't issue info threads while target is running"
+ return 0
}
}
diff --git a/gdb/testsuite/gdb.threads/detach-step-over.exp b/gdb/testsuite/gdb.threads/detach-step-over.exp
index ed9dc1a..bf5ef6b 100644
--- a/gdb/testsuite/gdb.threads/detach-step-over.exp
+++ b/gdb/testsuite/gdb.threads/detach-step-over.exp
@@ -314,12 +314,8 @@ proc_with_prefix test_detach_quit {condition_eval target_non_stop \
start_gdb_for_test $condition_eval $target_non_stop \
$non_stop $displaced
- gdb_test_multiple "maint show target-non-stop" "" {
- -wrap -re "(is|currently) on.*" {
- }
- -wrap -re "(is|currently) off.*" {
- return
- }
+ if {![is_target_non_stop]} {
+ return
}
}
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 669a5f6..19c782b 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -9298,6 +9298,28 @@ proc gdb_step_until { regexp {test_name ""} {max_steps 10} } {
}
}
+# Return false if the current target is not operating in non-stop
+# mode, otherwise, return true.
+#
+# The inferior will need to have started running in order to get the
+# correct result.
+
+proc is_target_non_stop { {testname ""} } {
+ # For historical reasons we assume non-stop mode is on. If the
+ # maintenance command fails for any reason then we're going to
+ # return true.
+ set is_non_stop true
+ gdb_test_multiple "maint show target-non-stop" $testname {
+ -wrap -re "(is|currently) on.*" {
+ set is_non_stop true
+ }
+ -wrap -re "(is|currently) off.*" {
+ set is_non_stop false
+ }
+ }
+ return $is_non_stop
+}
+
# Check if the compiler emits epilogue information associated
# with the closing brace or with the last statement line.
#