2003-11-20 Andrew Cagney <cagney@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Thu, 20 Nov 2003 18:03:48 +0000 (18:03 +0000)
committerAndrew Cagney <cagney@redhat.com>
Thu, 20 Nov 2003 18:03:48 +0000 (18:03 +0000)
* gdb.base/structs.exp: Handle and recover from internal errors.
Replace "foo${n}" with "foo<n>" in test messages.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/structs.exp

index e795b2dbe11e1db54e020301630b62b5b1f63007..cfb43a8de88b3ea6781d583b2429c1430e12b16b 100644 (file)
@@ -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.
 
index 0e89fc6eed330820accf50653fb7fd8aac09559b..0fbdc073890cc7d651d9331a210dabaab14c6374 100644 (file)
@@ -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}"