public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] gdb/testsuite: fix failure in gdb.mi/mi-pending.exp with extended-remote
@ 2023-02-28 11:09 Andrew Burgess
  0 siblings, 0 replies; only message in thread
From: Andrew Burgess @ 2023-02-28 11:09 UTC (permalink / raw)
  To: gdb-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=05ac6365e558a207fcf7fa39c3fc8c7b1d0601aa

commit 05ac6365e558a207fcf7fa39c3fc8c7b1d0601aa
Author: Andrew Burgess <aburgess@redhat.com>
Date:   Sat Feb 18 22:50:52 2023 +0000

    gdb/testsuite: fix failure in gdb.mi/mi-pending.exp with extended-remote
    
    I currently see this failure when running the gdb.mi/mi-pending.exp
    test using the native-extended-remote board:
    
      -break-insert -f -c x==4 mi-pendshr.c:pendfunc2
      &"No source file named mi-pendshr.c.\n"
      ^done,bkpt={number="2",type="breakpoint",disp="keep",enabled="y",addr="<PENDING>",pending="mi-pendshr.c:pendfunc2",cond="x==4",evaluated-by="host",times="0",original-location="mi-pendshr.c:pendfunc2"}
      (gdb)
      FAIL: gdb.mi/mi-pending.exp: MI pending breakpoint on mi-pendshr.c:pendfunc2 if x==4 (unexpected output)
    
    The failure is caused by the 'evaluated-by="host"' string, which only
    appears in the output when the test is run using the
    native-extended-remote board.
    
    I could fix this by just updating the pattern in
    gdb.mi/mi-pending.exp, but I have instead updated mi-pending.exp to
    make more use of the support procs in mi-support.exp.  This did
    require making a couple of adjustments to mi-support.exp, but I think
    the result is that mi-pending.exp is now easier to read, and I see no
    failures with native-extended-remote anymore.
    
    One of the test names has changed after this work, I think the old
    test name was wrong - it described a breakpoint as pending when the
    breakpoint was not pending, I suspect a copy & paste error.
    
    But there's no changes to what is actually being tested after this
    patch.
    
    Approved-By: Pedro Alves <pedro@palves.net>

Diff:
---
 gdb/testsuite/gdb.mi/mi-pending.exp | 34 +++++++++++++++++++++++++---------
 gdb/testsuite/lib/mi-support.exp    | 19 ++++++++++++++-----
 2 files changed, 39 insertions(+), 14 deletions(-)

diff --git a/gdb/testsuite/gdb.mi/mi-pending.exp b/gdb/testsuite/gdb.mi/mi-pending.exp
index a5c6ee5c906..71c3d45fe44 100644
--- a/gdb/testsuite/gdb.mi/mi-pending.exp
+++ b/gdb/testsuite/gdb.mi/mi-pending.exp
@@ -52,19 +52,35 @@ mi_load_shlibs $lib_sl1
 mi_load_shlibs $lib_sl2
 
 # Set pending breakpoint via MI.
-mi_gdb_test "-break-insert -f pendfunc1" \
-    ".*\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"<PENDING>\",pending=\"pendfunc1\",times=\"0\",original-location=\"pendfunc1\"\}"\
-    "MI pending breakpoint on pendfunc1"
+mi_create_breakpoint_pending "-f pendfunc1" \
+    "MI pending breakpoint on pendfunc1" \
+    -number "1" \
+    -type "breakpoint" \
+    -disp "keep" \
+    -enabled "y" \
+    -pending "pendfunc1" \
+    -original-location "pendfunc1"
 
 # Set pending breakpoint with a condition via MI.
-mi_gdb_test "-break-insert -f -c x==4 ${libfile1}.c:pendfunc2" \
-    ".*\\^done,bkpt=\{number=\"2\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"<PENDING>\",pending=\"${libfile1}.c:pendfunc2\",cond=\"x==4\",times=\"0\",original-location=\"${libfile1}.c:pendfunc2\"\}"\
-    "MI pending breakpoint on ${libfile1}.c:pendfunc2 if x==4"
+mi_create_breakpoint_pending "-f -c x==4 ${libfile1}.c:pendfunc2" \
+    "MI pending breakpoint on ${libfile1}.c:pendfunc2 if x==4" \
+    -number "2" \
+    -type "breakpoint" \
+    -disp "keep" \
+    -enabled "y" \
+    -pending "${libfile1}.c:pendfunc2" \
+    -cond "x==4" \
+    -original-location "${libfile1}.c:pendfunc2"
 
 # Set breakpoint so that we can stop when the thread is created
-mi_gdb_test "-break-insert -f thread_func" \
-    ".*\\^done,bkpt=\{number=\"3\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"${hex}\",func=\"thread_func\".*\}"\
-    "MI pending breakpoint on thread_func"
+mi_create_breakpoint "-f thread_func" \
+    "MI breakpoint on thread_func" \
+    -number "3" \
+    -type "breakpoint" \
+    -disp "keep" \
+    -enabled "y" \
+    -addr "$hex" \
+    -func "thread_func"
 
 mi_run_cmd
 
diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp
index 6454205e124..ab251da339c 100644
--- a/gdb/testsuite/lib/mi-support.exp
+++ b/gdb/testsuite/lib/mi-support.exp
@@ -1390,6 +1390,14 @@ proc mi_create_breakpoint_multi {location test args} {
     return $bp
 }
 
+# Like mi_create_breakpoint, but creates a pending breakpoint.
+
+proc mi_create_breakpoint_pending {location test args} {
+    set bp [eval mi_make_breakpoint_pending $args]
+    mi_gdb_test "222-break-insert $location" ".*\r\n222\\^done,$bp" $test
+    return $bp
+}
+
 # Creates varobj named NAME for EXPRESSION.
 # Name cannot be "-".
 proc mi_create_varobj { name expression testname } {
@@ -2637,10 +2645,12 @@ proc mi_make_breakpoint_multi {args} {
 # -break-info for pending breakpoints.
 #
 # Arguments for the breakpoint may be specified using the options:
-# number, type, disp, enabled, pending, original-location, and thread.
+# number, type, disp, enabled, pending, original-location, thread, and
+# cond.
 #
-# For the option -thread the corresponding output field is only
-# included if the option is present and not the empty string.
+# For the options -thread and -cond the corresponding output fields
+# are only included if the options are present and not the empty
+# string.
 #
 # Example: mi_make_breakpoint_pending -number 2 -pending func
 # will return the breakpoint:
@@ -2649,7 +2659,7 @@ proc mi_make_breakpoint_multi {args} {
 
 proc mi_make_breakpoint_pending {args} {
     parse_args {{number .*} {type .*} {disp .*} {enabled .*}
-	{pending .*} {original-location .*} {thread ""}}
+	{pending .*} {original-location .*} {thread ""} {cond ""}}
 
     set attr_list {}
     foreach attr [list number type disp enabled] {
@@ -2665,7 +2675,6 @@ proc mi_make_breakpoint_pending {args} {
     set ignore 0
     set times 0
     set script ""
-    set cond ""
     set evaluated-by ""
 
     set result [mi_make_breakpoint_1 \

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-02-28 11:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-28 11:09 [binutils-gdb] gdb/testsuite: fix failure in gdb.mi/mi-pending.exp with extended-remote Andrew Burgess

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).