Skip setting HW watchpoint if skip_hw_watchpoint_multi_tests in gdb.base/break-idempo...
authorYao Qi <yao.qi@linaro.org>
Thu, 30 Apr 2015 09:08:10 +0000 (10:08 +0100)
committerYao Qi <yao.qi@linaro.org>
Thu, 30 Apr 2015 09:08:10 +0000 (10:08 +0100)
Hi,
I see this fails below on arm linux native testing and remote testing
with "set remote hardware-watchpoint-limit 1",

 rwatch global^M
 There are not enough available hardware resources for this watchpoint.^M
 (gdb) FAIL: gdb.base/break-idempotent.exp: always-inserted off: rwatch: twice: rwatch global

gdb.base/break-idempotent.exp sets two breakpoints/watchpoints on the
same address.  GDB isn't smart enough calculate these two HW
watchpoints can fit in one HW debug register, so the error message
above isn't necessary (there is one HW watchpoint register on arm).
Because target_ops interface can_use_hardware_watchpoint doesn't
pass enough information to the target backend.

Note that if I don't "set remote hardware-watchpoint-limit 1" in
remote testing, this test passes without fails.  However without
"set remote hardware-watchpoint-limit 1", many other watchpoint
tests fail.

This patch is to add a check to skip_hw_watchpoint_multi_tests
for rwatch and awatch.  We can add such check for watch as well,
but GDB is able to switch to software watchpoint if HW resource
isn't available, it doesn't cause any fail, I decide not to skip.

gdb/testsuite:

2015-04-30  Yao Qi  <yao.qi@linaro.org>

* gdb.base/break-idempotent.exp: If
skip_hw_watchpoint_multi_tests returns true, skip the tests
on "rwatch" and "awatch".

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/break-idempotent.exp

index 1e48f98efe0bfd1bb2148aeef48a0b896f369c19..e68ffafdc2644c424099e72829b6863288acefd5 100644 (file)
@@ -1,3 +1,9 @@
+2015-04-30  Yao Qi  <yao.qi@linaro.org>
+
+       * gdb.base/break-idempotent.exp: If
+       skip_hw_watchpoint_multi_tests returns true, skip the tests
+       on "rwatch" and "awatch".
+
 2015-04-30  Yao Qi  <yao.qi@linaro.org>
 
        * gdb.base/relativedebug.exp: Invoke gdb command
index c5dae96d18318f0db28576e647c6ecbc0eae597a..1cff706bd56b482e0e9108c753b065cdb51e6de6 100644 (file)
@@ -174,7 +174,8 @@ foreach always_inserted { "off" "on" } {
        test_break $always_inserted "watch"
     }
 
-    if {![skip_hw_watchpoint_access_tests]} {
+    if {![skip_hw_watchpoint_access_tests]
+       && ![skip_hw_watchpoint_multi_tests]} {
        test_break $always_inserted "rwatch"
        test_break $always_inserted "awatch"
     }
This page took 0.031836 seconds and 4 git commands to generate.