# This file was written by Fred Fish. (fnf@cygnus.com)
+# The skip_hw_watchpoint_tests checks if watchpoints are supported by the
+# processor. On PowerPC, the check runs a small test program under gdb
+# to determine if the Power processor supports HW watchpoints. The check
+# must be done before starting the test so as to not disrupt the execution
+# of the actual test.
+
+set skip_hw_watchpoint_tests_p [skip_hw_watchpoint_tests]
standard_testfile
proc test_wide_location_1 {} {
global no_hw
global gdb_prompt
+ global skip_hw_watchpoint_tests_p
# This test watches two words on most 32-bit ABIs, and one word on
# most 64-bit ABIs.
# Platforms where the target can't watch such a large region
# should clear hw_expected below.
- if { $no_hw || [target_info exists gdb,no_hardware_watchpoints]
+ if { $no_hw || $skip_hw_watchpoint_tests_p
|| [istarget arm*-*-*]
|| ([istarget powerpc*-*-*] && ![is_lp64_target])} {
set hw_expected 0
proc test_wide_location_2 {} {
global no_hw
global gdb_prompt
+ global skip_hw_watchpoint_tests_p
# This test watches four words on most 32-bit ABIs, and two words
# on 64-bit ABIs.
# Platforms where the target can't watch such a large region
# should clear hw_expected below.
- if { $no_hw || [target_info exists gdb,no_hardware_watchpoints]
+ if { $no_hw || $skip_hw_watchpoint_tests_p
|| [istarget arm*-*-*]
|| [istarget powerpc*-*-*]} {
set hw_expected 0
proc test_no_hw_watchpoints {} {
global testfile
+ global skip_hw_watchpoint_tests_p
clean_restart $testfile
# Re-enable hardware watchpoints if necessary.
- if ![target_info exists gdb,no_hardware_watchpoints] {
+ if {!$skip_hw_watchpoint_tests_p} {
gdb_test_no_output "set can-use-hw-watchpoints 1" ""
}
}
proc test_watch_register_location {} {
global no_hw
+ global skip_hw_watchpoint_tests_p
- if {!$no_hw && ![target_info exists gdb,no_hardware_watchpoints]} {
+ if {!$no_hw && !$skip_hw_watchpoint_tests_p} {
# Non-memory read/access watchpoints are not supported, they would
# require software read/access watchpoint support (which is not
# currently available).
proc do_tests {} {
global testfile
global no_hw
+ global skip_hw_watchpoint_tests_p
clean_restart $testfile
- if {$no_hw || [target_info exists gdb,no_hardware_watchpoints]} {
+ if {$no_hw || $skip_hw_watchpoint_tests_p} {
gdb_test_no_output "set can-use-hw-watchpoints 0"\
"disable fast watches, 1"
}
# `initialize' anymore.
clean_restart $testfile
- if {$no_hw || [target_info exists gdb,no_hardware_watchpoints]} {
+ if {$no_hw || $skip_hw_watchpoint_tests_p} {
gdb_test_no_output "set can-use-hw-watchpoints 0" \
"disable fast watches, 2"
}
# watchpoints force-disabled.
do_tests
-if ![target_info exists gdb,no_hardware_watchpoints] {
+if {!$skip_hw_watchpoint_tests_p} {
with_test_prefix "no-hw" {
set no_hw 1
do_tests