From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1726) id 6A92C3858C39; Tue, 28 Feb 2023 11:09:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6A92C3858C39 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1677582570; bh=FgesWIGQLQao/L6V7Zb5oKRq8+PJ+3mqFXwl8XhAEPE=; h=From:To:Subject:Date:From; b=MX9U2XFpIejfjxWF8N0CRLM0T157gCCX5iQb4GSyXFzH0EhkV7vUppWbgO7rp6WGr 4T7jr2Yb6iWcnbHVEhPT5G6phs7Gp6hUKyZHbzuQ0yqCUvL0coBNctE3n8CXydzN4/ s2fujSBKhhlocmBi1At/gwJqMoYxBEWz+5xMwZBw= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Andrew Burgess To: gdb-cvs@sourceware.org Subject: [binutils-gdb] gdb/testsuite: introduce is_target_non_stop helper proc X-Act-Checkin: binutils-gdb X-Git-Author: Andrew Burgess X-Git-Refname: refs/heads/master X-Git-Oldrev: 292deeba7d6e0f1df99fff8c18000a1a3c481f3a X-Git-Newrev: 47171eeb9468fd38e3785b0181d63a2abea3bf29 Message-Id: <20230228110930.6A92C3858C39@sourceware.org> Date: Tue, 28 Feb 2023 11:09:30 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D47171eeb9468= fd38e3785b0181d63a2abea3bf29 commit 47171eeb9468fd38e3785b0181d63a2abea3bf29 Author: Andrew Burgess Date: Sat Feb 18 20:52:40 2023 +0000 gdb/testsuite: introduce is_target_non_stop helper proc =20 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. =20 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. =20 There should be no change in what is tested after this commit. =20 Reviewed-By: Pedro Alves Diff: --- gdb/testsuite/gdb.base/access-mem-running.exp | 10 +++------- gdb/testsuite/gdb.base/fork-running-state.exp | 11 +++-------- .../gdb.threads/access-mem-running-thread-exit.exp | 10 +++------- gdb/testsuite/gdb.threads/clone-attach-detach.exp | 11 +++-------- gdb/testsuite/gdb.threads/detach-step-over.exp | 8 ++------ gdb/testsuite/lib/gdb.exp | 22 ++++++++++++++++++= ++++ 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 90ddedc470d..d0f7871fc0f 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] =3D=3D "remote" || [target_info gdb_protocol] =3D=3D "extended-remote")} { =20 - 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 } } =20 diff --git a/gdb/testsuite/gdb.base/fork-running-state.exp b/gdb/testsuite/= gdb.base/fork-running-state.exp index b8045ad490f..9a18193c4dc 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 sched= ule_multiple } { && ([target_info gdb_protocol] =3D=3D "remote" || [target_info gdb_protocol] =3D=3D "extended-remote")} { =20 - 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 } } =20 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 09b05480c04..2d3ace44ccd 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] =3D=3D "remote" || [target_info gdb_protocol] =3D=3D "extended-remote")} { =20 - 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 } } =20 diff --git a/gdb/testsuite/gdb.threads/clone-attach-detach.exp b/gdb/testsu= ite/gdb.threads/clone-attach-detach.exp index ac9b92d5f57..a71713ea8ba 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] =3D=3D "remote" || [target_info gdb_protocol] =3D=3D "extended-remote")} { =20 - 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 runn= ing" - return 0 - } + if {![is_target_non_stop]} { + unsupported "bg attach: can't issue info threads while target is running" + return 0 } } =20 diff --git a/gdb/testsuite/gdb.threads/detach-step-over.exp b/gdb/testsuite= /gdb.threads/detach-step-over.exp index ed9dc1aab88..bf5ef6b06a1 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 targ= et_non_stop \ start_gdb_for_test $condition_eval $target_non_stop \ $non_stop $displaced =20 - 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 } } =20 diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 669a5f606d6..19c782bea46 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_ste= ps 10} } { } } =20 +# 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. #