diff options
author | Andrew Burgess <aburgess@redhat.com> | 2023-02-18 22:50:52 +0000 |
---|---|---|
committer | Andrew Burgess <aburgess@redhat.com> | 2023-02-28 10:56:28 +0000 |
commit | 05ac6365e558a207fcf7fa39c3fc8c7b1d0601aa (patch) | |
tree | 5b149ccc9b2ce68177ce0c3d1b9c725e327dd354 /gdb | |
parent | 47171eeb9468fd38e3785b0181d63a2abea3bf29 (diff) | |
download | gdb-05ac6365e558a207fcf7fa39c3fc8c7b1d0601aa.zip gdb-05ac6365e558a207fcf7fa39c3fc8c7b1d0601aa.tar.gz gdb-05ac6365e558a207fcf7fa39c3fc8c7b1d0601aa.tar.bz2 |
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>
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/testsuite/gdb.mi/mi-pending.exp | 34 | ||||
-rw-r--r-- | 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 a5c6ee5..71c3d45 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 6454205..ab251da 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 \ |