This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[09/10] watchpoint.exp: Factor out 'forced no-hw watchpoints' tests into their own proc.
- From: Pedro Alves <palves at redhat dot com>
- To: GDB Patches <gdb-patches at sourceware dot org>
- Date: Thu, 26 Jan 2012 14:23:37 +0000
- Subject: [09/10] watchpoint.exp: Factor out 'forced no-hw watchpoints' tests into their own proc.
- References: <4F215EE8.4080302@redhat.com>
2012-01-26 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.
---
gdb/testsuite/gdb.base/watchpoint.exp | 76 +++++++++++++++++----------------
1 files changed, 40 insertions(+), 36 deletions(-)
diff --git a/gdb/testsuite/gdb.base/watchpoint.exp b/gdb/testsuite/gdb.base/watchpoint.exp
index 697f46e..b1c6c94 100644
--- a/gdb/testsuite/gdb.base/watchpoint.exp
+++ b/gdb/testsuite/gdb.base/watchpoint.exp
@@ -766,7 +766,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
@@ -845,41 +883,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