aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/testsuite/ChangeLog6
-rw-r--r--gdb/testsuite/gdb.base/watchpoint.exp76
2 files changed, 46 insertions, 36 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 7f1776e..218cfe0 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,11 @@
2012-01-27 Pedro Alves <palves@redhat.com>
+ * gdb.base/watchpoint.exp (test_no_hw_watchpoints): New, factored
+ out from the top level.
+ (top level): Call it instead.
+
+2012-01-27 Pedro Alves <palves@redhat.com>
+
* gdb.base/watchpoint.exp (top level): Re-enable hardware
watchpoints sooner.
diff --git a/gdb/testsuite/gdb.base/watchpoint.exp b/gdb/testsuite/gdb.base/watchpoint.exp
index a3d5234..54e21c3 100644
--- a/gdb/testsuite/gdb.base/watchpoint.exp
+++ b/gdb/testsuite/gdb.base/watchpoint.exp
@@ -765,7 +765,45 @@ proc test_inaccessible_watchpoint {} {
gdb_test_no_output "delete \$global_ptr_ptr_breakpoint_number"
}
}
-
+
+proc test_no_hw_watchpoints {} {
+ maybe_clean_restart
+
+ # Verify that a user can force GDB to use "slow" watchpoints.
+ # (This proves rather little on kernels that don't support
+ # fast watchpoints, but still...)
+ #
+ if ![runto_main] then { fail "watch tests suppressed" }
+
+ gdb_test_no_output "set can-use-hw-watchpoints 0" "disable fast watches"
+
+ gdb_test "show can-use-hw-watchpoints" \
+ "Debugger's willingness to use watchpoint hardware is 0." \
+ "show disable fast watches"
+
+ gdb_test "watch ival3 if count > 1" \
+ "Watchpoint \[0-9\]*: ival3.*" \
+ "set slow conditional watch"
+
+ gdb_test "continue" \
+ "Watchpoint \[0-9\]*: ival3.*Old value = 1.*New value = 2.*" \
+ "trigger slow conditional watch"
+
+ gdb_test_no_output "delete \$bpnum" "delete watch ival3"
+
+ # We've explicitly disabled hardware watches. Verify that GDB
+ # refrains from using them.
+ #
+ gdb_test "rwatch ival3" \
+ "Expression cannot be implemented with read/access watchpoint..*" \
+ "rwatch disallowed when can-set-hw-watchpoints cleared"
+
+ # Re-enable hardware watchpoints if necessary.
+ if ![target_info exists gdb,no_hardware_watchpoints] {
+ gdb_test_no_output "set can-use-hw-watchpoints 1" ""
+ }
+}
+
proc test_watchpoint_in_big_blob {} {
global gdb_prompt
@@ -844,41 +882,7 @@ if [initialize] then {
test_inaccessible_watchpoint
- maybe_clean_restart
-
- # Verify that a user can force GDB to use "slow" watchpoints.
- # (This proves rather little on kernels that don't support
- # fast watchpoints, but still...)
- #
- if ![runto_main] then { fail "watch tests suppressed" }
-
- gdb_test_no_output "set can-use-hw-watchpoints 0" "disable fast watches"
-
- gdb_test "show can-use-hw-watchpoints" \
- "Debugger's willingness to use watchpoint hardware is 0." \
- "show disable fast watches"
-
- gdb_test "watch ival3 if count > 1" \
- "Watchpoint \[0-9\]*: ival3.*" \
- "set slow conditional watch"
-
- gdb_test "continue" \
- "Watchpoint \[0-9\]*: ival3.*Old value = 1.*New value = 2.*" \
- "trigger slow conditional watch"
-
- gdb_test_no_output "delete \$bpnum" "delete watch ival3"
-
- # We've explicitly disabled hardware watches. Verify that GDB
- # refrains from using them.
- #
- gdb_test "rwatch ival3" \
- "Expression cannot be implemented with read/access watchpoint..*" \
- "rwatch disallowed when can-set-hw-watchpoints cleared"
-
- # Re-enable hardware watchpoints if necessary.
- if ![target_info exists gdb,no_hardware_watchpoints] {
- gdb_test_no_output "set can-use-hw-watchpoints 1" ""
- }
+ test_no_hw_watchpoints
test_watchpoint_and_breakpoint