This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[05/10] watchpoint.exp: Clean up "mips-idt-*" specific re-initialization.
- From: Pedro Alves <palves at redhat dot com>
- To: GDB Patches <gdb-patches at sourceware dot org>
- Date: Thu, 26 Jan 2012 14:19:10 +0000
- Subject: [05/10] watchpoint.exp: Clean up "mips-idt-*" specific re-initialization.
- References: <4F215EE8.4080302@redhat.com>
I don't know if there's still anyone who cares about mips-idt. This cleans that
target's specific re-initialization hacks, by doing them close to where a test
starts running the program from scratch.
If mips-idt is completely dead, we could instead get rid of all this stuff (it was
introduced in 1993), which exists in several tests.
2012-01-26 Pedro Alves <palves@redhat.com>
* gdb.base/watchpoint.exp (maybe_clean_restart)
(maybe_reinitialize): New.
(test_disabling_watchpoints): Call maybe_reinitialize.
(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.
---
gdb/testsuite/gdb.base/watchpoint.exp | 81 +++++++++++++++------------------
1 files changed, 36 insertions(+), 45 deletions(-)
diff --git a/gdb/testsuite/gdb.base/watchpoint.exp b/gdb/testsuite/gdb.base/watchpoint.exp
index 3879308..75ca8cc 100644
--- a/gdb/testsuite/gdb.base/watchpoint.exp
+++ b/gdb/testsuite/gdb.base/watchpoint.exp
@@ -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,6 +232,8 @@ proc test_disabling_watchpoints {} {
global decimal
global hex
+ maybe_reinitialize
+
# "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"
@@ -274,6 +299,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 +460,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 +564,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 +691,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 +778,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 +787,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 +805,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 +838,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