aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/testsuite/ChangeLog3
-rw-r--r--gdb/testsuite/gdb.base/structs.exp27
2 files changed, 28 insertions, 2 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index e795b2d..cfb43a8 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,8 @@
2003-11-20 Andrew Cagney <cagney@redhat.com>
+ * gdb.base/structs.exp: Handle and recover from internal errors.
+ Replace "foo${n}" with "foo<n>" in test messages.
+
* gdb.base/structs.exp: Update copyright. Rewrite.
* gdb.base/structs.c: Update copyright. Rewrite.
diff --git a/gdb/testsuite/gdb.base/structs.exp b/gdb/testsuite/gdb.base/structs.exp
index 0e89fc6..0fbdc07 100644
--- a/gdb/testsuite/gdb.base/structs.exp
+++ b/gdb/testsuite/gdb.base/structs.exp
@@ -321,11 +321,22 @@ proc test_struct_returns { n } {
-re "L[expr ${n} + 1] *= fun[expr ${n} + 1].*${gdb_prompt} $" {
pass "${test}"
}
+ -re "A problem internal to GDB has been detected" {
+ fail "${test} (GDB internal error 2)"
+ gdb_internal_error_resync
+ }
+ -re "${gdb_prompt} $" {
+ fail "${test} (wrong line info)"
+ }
timeout {
fail "${test} (timeout 2)"
}
}
}
+ -re "A problem internal to GDB has been detected" {
+ fail "${test} (GDB internal error 1)"
+ gdb_internal_error_resync
+ }
-re "${gdb_prompt} $" {
fail "${test} (no query)"
}
@@ -364,6 +375,10 @@ proc test_struct_returns { n } {
fail "${test}"
}
}
+ -re "A problem internal to GDB has been detected" {
+ fail "${test} (GDB internal error)"
+ gdb_internal_error_resync
+ }
-re "${gdb_prompt} $" {
# Garbage returned, garbage printed
fail "${test}"
@@ -395,7 +410,7 @@ proc test_struct_returns { n } {
# Finish the function, set 'finish_value_unknown" to non-empty if the
# return-value was not found.
send_gdb "finish\n"
- set test "finish foo${n}; ${tests}"
+ set test "finish foo<n>; ${tests}"
set finish_value_unknown 0
gdb_expect {
-re "Value returned is .*${gdb_prompt} $" {
@@ -406,6 +421,10 @@ proc test_struct_returns { n } {
set finish_value_unknown 1
pass "${test}"
}
+ -re "A problem internal to GDB has been detected" {
+ fail "${test} (GDB internal error)"
+ gdb_internal_error_resync
+ }
-re ".*${gdb_prompt} $" {
# Garbage returned
fail "${test}"
@@ -419,7 +438,7 @@ proc test_struct_returns { n } {
# "p/c". If no return value was found, the 'Z' from the previous
# check that the variable was cleared, is printed.
send_gdb "p/c\n"
- set test "value foo${n} finished; ${tests}"
+ set test "value foo<n> finished; ${tests}"
setup_kfails structs-*tld* i686-*-* gdb/1447
gdb_expect {
-re "[foo ${n}]\[\r\n\]+${gdb_prompt} $" {
@@ -441,6 +460,10 @@ proc test_struct_returns { n } {
fail "${test}"
}
}
+ -re "A problem internal to GDB has been detected" {
+ fail "${test} (GDB internal error)"
+ gdb_internal_error_resync
+ }
-re ".*${gdb_prompt} $" {
# Garbage returned
fail "${test}"