* gdb.c++/derivation.exp, gdb.c++/overload.exp,
authorJim Blandy <jimb@codesourcery.com>
Wed, 9 Apr 2003 23:21:14 +0000 (23:21 +0000)
committerJim Blandy <jimb@codesourcery.com>
Wed, 9 Apr 2003 23:21:14 +0000 (23:21 +0000)
gdb.c++/userdef.exp: If GDB fails to restore the selected frame
after an inferior function call, report the failure, but allow the
test to continue.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.c++/derivation.exp
gdb/testsuite/gdb.c++/overload.exp
gdb/testsuite/gdb.c++/userdef.exp

index 981ba36..c0ba864 100644 (file)
@@ -1,3 +1,10 @@
+2003-04-09  Jim Blandy  <jimb@redhat.com>
+
+       * gdb.c++/derivation.exp, gdb.c++/overload.exp,
+       gdb.c++/userdef.exp: If GDB fails to restore the selected frame
+       after an inferior function call, report the failure, but allow the
+       test to continue.
+
 2003-04-05  Stephane Carrez  <stcarrez@nerim.fr>
 
        * gdb.base/break.exp: marker4() is defined at line 46 when compiled
index 9128730..10e3844 100644 (file)
@@ -300,6 +300,24 @@ gdb_expect {
     timeout           { fail "(timeout) print value of g_instance.afoo()" }
   }
 
+
+# If GDB fails to restore the selected frame properly after the
+# inferior function call above (see GDB PR 1155 for an explanation of
+# why this might happen), all the subsequent tests will fail.  We
+# should detect report that failure, but let the marker call finish so
+# that the rest of the tests can run undisturbed.
+gdb_test_multiple "frame" "re-selected 'main' frame after inferior call" {
+    -re "#0  marker1.*$gdb_prompt $" {
+        setup_kfail "gdb/1155" s390-*-linux-gnu
+        fail "re-selected 'main' frame after inferior call"
+        gdb_test "finish" ".*main.*at .*derivation.cc:21\[79\].*" \
+            "finish call to marker1"
+    }
+    -re "#1  ($hex in )?main.*$gdb_prompt $" {
+        pass "re-selected 'main' frame after inferior call"
+    }
+}
+        
 send_gdb "print g_instance.bfoo()\n"
 gdb_expect {
     -re ".\[0-9\]* = 2.*$gdb_prompt $" {
index 227b055..be60250 100644 (file)
@@ -120,6 +120,24 @@ gdb_expect {
   }
 
 
+# If GDB fails to restore the selected frame properly after the
+# inferior function call above (see GDB PR 1155 for an explanation of
+# why this might happen), all the subsequent tests will fail.  We
+# should detect and report that failure, but let the marker call
+# finish so that the rest of the tests can run undisturbed.
+gdb_test_multiple "frame" "re-selected 'main' frame after inferior call" {
+    -re "#0  marker1.*$gdb_prompt $" {
+        setup_kfail "gdb/1155" s390-*-linux-gnu
+        fail "re-selected 'main' frame after inferior call"
+        gdb_test "finish" ".*main.*at .*overload.cc:7\[78\].*" \
+            "finish call to marker1"
+    }
+    -re "#1  ($hex in )?main.*$gdb_prompt $" {
+        pass "re-selected 'main' frame after inferior call"
+    }
+}
+
+
 send_gdb "print foo_instance1.overloadargs(1, 2)\n"
 gdb_expect {
     -re ".\[0-9\]* = 2\r\n$gdb_prompt $" {
index a46aba6..9a8fb02 100644 (file)
@@ -66,6 +66,23 @@ send_gdb "break marker1\n" ; gdb_expect -re ".*$gdb_prompt $"
 
 gdb_test "print one + two" "\\\$\[0-9\]* = {x = 6, y = 8}"
 
+# If GDB fails to restore the selected frame properly after the
+# inferior function call above (see GDB PR 1155 for an explanation of
+# why this might happen), all the subsequent tests will fail.  We
+# should detect report that failure, but let the marker call finish so
+# that the rest of the tests can run undisturbed.
+gdb_test_multiple "frame" "re-selected 'main' frame after inferior call" {
+    -re "#0  marker1.*$gdb_prompt $" {
+        setup_kfail "gdb/1155" s390-*-linux-gnu
+        fail "re-selected 'main' frame after inferior call"
+        gdb_test "finish" ".*main.*at .*userdef.cc:27\[67\].*" \
+                "finish call to marker1"
+    }
+    -re "#1  ($hex in )?main.*$gdb_prompt $" {
+        pass "re-selected 'main' frame after inferior call"
+    }
+}
+        
 gdb_test "print one - two" "\\\$\[0-9\]* = {x = -2, y = -2}"
 
 gdb_test "print one * two" "\\\$\[0-9\]* = {x = 8, y = 15}"