2012-01-27 Pedro Alves <palves@redhat.com>

* gdb.base/watchpoint.exp (maybe_clean_restart)
	(maybe_reinitialize): New.
	(test_disabling_watchpoints): Call maybe_reinitialize.  Don't
	expect "hit N times".
	(test_disabling_watchpoints, test_complex_watchpoint)
	(test_watchpoint_and_breakpoint, test_inaccessible_watchpoint):
	Call maybe_clean_restart.
	(top level): Use clean_restart.  Remove "mips-idt-*"
	reinitialization.
This commit is contained in:
Pedro Alves 2012-01-27 13:58:11 +00:00
parent dbd95dafec
commit e4d63ba2ed
2 changed files with 49 additions and 47 deletions

View File

@ -1,3 +1,15 @@
2012-01-27 Pedro Alves <palves@redhat.com>
* gdb.base/watchpoint.exp (maybe_clean_restart)
(maybe_reinitialize): New.
(test_disabling_watchpoints): Call maybe_reinitialize. Don't
expect "hit N times".
(test_disabling_watchpoints, test_complex_watchpoint)
(test_watchpoint_and_breakpoint, test_inaccessible_watchpoint):
Call maybe_clean_restart.
(top level): Use clean_restart. Remove "mips-idt-*"
reinitialization.
2012-01-27 Pedro Alves <palves@redhat.com>
* gdb.base/watchpoint.exp: Always run test_complex_watchpoint.

View File

@ -89,6 +89,29 @@ proc initialize {} {
return 1
}
proc maybe_clean_restart { } {
# The IDT/sim monitor only has 8 (!) open files, of which it uses
# 4 (!). So we have to make sure one program exits before
# starting another one.
if [istarget "mips-idt-*"] then {
global testfile
clean_restart $testfile
}
}
proc maybe_reinitialize { } {
# The IDT/sim monitor only has 8 (!) open files, of which it uses
# 4 (!). So we have to make sure one program exits before
# starting another one.
if [istarget "mips-idt-*"] then {
global testfile
clean_restart $testfile
initialize
}
}
#
# Test simple watchpoint.
#
@ -209,8 +232,9 @@ proc test_disabling_watchpoints {} {
global decimal
global hex
# "info watch" is the same as "info break"
gdb_test "info watch" "\[0-9]+\[ \]*.*watchpoint.*ival3\r\n\.*\[0-9\]+ times.*" "watchpoints found in watchpoint/breakpoint table"
maybe_reinitialize
gdb_test "info watch" "\[0-9]+\[ \]*.*watchpoint.*ival3.*" "watchpoints found in watchpoint/breakpoint table"
# Ensure that the watchpoint is disabled when we startup.
@ -274,6 +298,8 @@ proc test_disabling_watchpoints {} {
proc test_stepping {} {
global gdb_prompt
maybe_clean_restart
if [runto marker1] then {
gdb_test "watch ival2" ".*\[Ww\]atchpoint \[0-9\]*: ival2"
@ -433,6 +459,8 @@ proc test_watchpoint_triggered_in_syscall {} {
proc test_complex_watchpoint {} {
global gdb_prompt
maybe_clean_restart
if [runto marker4] then {
gdb_test "watch ptr1->val" ".*\[Ww\]atchpoint \[0-9\]*: ptr1->val"
gdb_test "break marker5" ".*Breakpoint.*"
@ -535,6 +563,8 @@ proc test_complex_watchpoint {} {
proc test_watchpoint_and_breakpoint {} {
global gdb_prompt
maybe_clean_restart
# This is a test for PR gdb/38, which involves setting a
# watchpoint right after you've reached a breakpoint.
@ -660,6 +690,8 @@ proc test_wide_location_2 {} {
proc test_inaccessible_watchpoint {} {
global gdb_prompt
maybe_clean_restart
# This is a test for watchpoints on currently inaccessible (but later
# valid) memory.
@ -745,10 +777,7 @@ proc test_watchpoint_in_big_blob {} {
# Start with a fresh gdb.
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load $binfile
clean_restart $testfile
set prev_timeout $timeout
set timeout 600
verbose "Timeout now 600 sec.\n"
@ -757,28 +786,8 @@ if [initialize] then {
test_simple_watchpoint
# The IDT/sim monitor only has 8 (!) open files, of which it uses
# 4 (!). So we have to make sure one program exits before
# starting another one.
if [istarget "mips-idt-*"] then {
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load $binfile
initialize
}
test_disabling_watchpoints
# See above.
if [istarget "mips-idt-*"] then {
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load $binfile
initialize
}
if ![target_info exists gdb,cannot_call_functions] {
test_stepping
}
@ -795,18 +804,12 @@ if [initialize] then {
test_watchpoint_triggered_in_syscall
}
# See above.
if [istarget "mips-idt-*"] then {
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load $binfile
}
test_complex_watchpoint
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...)
@ -834,23 +837,10 @@ if [initialize] then {
"Expression cannot be implemented with read/access watchpoint..*" \
"rwatch disallowed when can-set-hw-watchpoints cleared"
# See above.
if [istarget "mips-idt-*"] then {
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load $binfile
}
test_watchpoint_and_breakpoint
test_watchpoint_in_big_blob
# See above.
if [istarget "mips-idt-*"] then {
clean_restart
}
test_constant_watchpoint
test_disable_enable_software_watchpoint