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.
This commit is contained in:
Pedro Alves 2012-01-27 14:00:41 +00:00
parent f2c8a05131
commit a13491c8b5
2 changed files with 46 additions and 36 deletions

View File

@ -1,3 +1,9 @@
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

View File

@ -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