watchpoint-reuse-slot.exp: Correctly skip unsupported commands.
Commit Message
The test case "watchpoint-reuse-slot.exp" yields a lot of failures on
s390/s390x: all instances of awatch, rwatch, and hbreak are performed
even though they aren't supported on these targets. This is because
the test case ignores non-support error messages when probing for
support of these commands, like:
(gdb) rwatch buf.byte[0]
Target does not support this type of hardware watchpoint.
The patch adds handling for this case in the appropriate
gdb_test_multiple invocations.
gdb/testsuite/
* gdb.base/watchpoint-reuse-slot.exp: Handle the case that the
target lacks support for watch, awatch, rwatch, or hbreak.
---
gdb/testsuite/gdb.base/watchpoint-reuse-slot.exp | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
Comments
On 06/26/2014 02:52 PM, Andreas Arnez wrote:
> The test case "watchpoint-reuse-slot.exp" yields a lot of failures on
> s390/s390x: all instances of awatch, rwatch, and hbreak are performed
> even though they aren't supported on these targets. This is because
> the test case ignores non-support error messages when probing for
> support of these commands, like:
>
> (gdb) rwatch buf.byte[0]
> Target does not support this type of hardware watchpoint.
>
> The patch adds handling for this case in the appropriate
> gdb_test_multiple invocations.
Thank you.
Looks like I only hacked out target_insert_watchpoint/hw_breakpoint
in my testing to return unsupported, which is what leads to the
"You may have requested too many" regexs in place:
(top-gdb) awatch args.argc
Hardware access (read/write) watchpoint 4: args.argc
Warning:
Could not insert hardware watchpoint 4.
Could not insert hardware breakpoints:
You may have requested too many hardware breakpoints/watchpoints.
We get that that error too when debugging against gdbserver with
Z packets disabled, which I also tested.
We get that alternative error if the target_can_use_hw_breakpoint
method returns false, which I forgot to hack/test.
>
> gdb/testsuite/
> * gdb.base/watchpoint-reuse-slot.exp: Handle the case that the
> target lacks support for watch, awatch, rwatch, or hbreak.
s/watch, // , I think, as "watch" falls back to software
watchpoints.
Patch is OK.
Thanks!
@@ -103,6 +103,9 @@ foreach cmd {"watch" "awatch" "rwatch"} {
-re "You may have requested too many.*$gdb_prompt $" {
unsupported $test
}
+ -re "Target does not support.*$gdb_prompt $" {
+ unsupported $test
+ }
-re "$gdb_prompt $" {
pass $test
lappend cmds $cmd
@@ -115,7 +118,10 @@ foreach cmd {"watch" "awatch" "rwatch"} {
set test "hbreak"
gdb_test_multiple "hbreak main" $test {
-re "You may have requested too many.*$gdb_prompt $" {
- pass $test
+ unsupported $test
+ }
+ -re "No hardware breakpoint support.*$gdb_prompt $" {
+ unsupported $test
}
-re "$gdb_prompt $" {
pass $test