* gdb.base/ending-run.exp: Properly mark "continue after exit" and
authorFernando Nasser <fnasser@redhat.com>
Wed, 18 Sep 2002 17:11:53 +0000 (17:11 +0000)
committerFernando Nasser <fnasser@redhat.com>
Wed, 18 Sep 2002 17:11:53 +0000 (17:11 +0000)
"don't step after run" as unresolved or unsupported, instead of xfail.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/ending-run.exp

index 40ff8db9757eae2fef95d64c21506fe2190053e5..e9249c132ef800adfe96975614710cfbdac4adf6 100644 (file)
@@ -1,3 +1,8 @@
+2002-09-18  Fernando Nasser  <fnasser@redhat.com>
+
+       * gdb.base/ending-run.exp: Properly mark "continue after exit" and
+       "don't step after run" as unresolved or unsupported, instead of xfail.
+
 2002-09-18  Corinna Vinschen  <vinschen@redhat.com>
 
        * gdb.base/ending-run.exp: Fix expected string for _wrap_main to
index 1b0f56078341a91e2041baf50dc2f695a5e6850d..989406a9b238e8568d21855fca7cec0a9bcfdb96 100644 (file)
@@ -233,6 +233,9 @@ gdb_expect {
 # every BSP's exit function behaves differently, so there's no single
 # way to tell whether we've exited gracefully or not.  So don't run
 # these tests when use_gdb_stub is set, or when we're running under Cygmon.
+set program_exited_normally 0
+set program_not_exited 0
+set program_in_exit 0
 if {! [target_info exists use_gdb_stub]
     && (! [target_info exists use_cygmon] || ! [target_info use_cygmon])} {
     global program_exited;
@@ -244,33 +247,54 @@ if {! [target_info exists use_gdb_stub]
                # then we won't get the "Single-stepping until function
                # exit" message.
                pass "step to end of run"
+               set program_exited_normally 1
            }
            -re "Single.*EXIT code 0\r\n.*Program exited normally.*$gdb_prompt $" {
                pass "step to end of run (status wrapper)"
+               set program_exited_normally 1
            }
            -re ".*Single.*Program exited.*$gdb_prompt $" {
                pass "step to end of run"
+               set program_exited_normally 1
            }
            -re ".*Single.*in exit.*from.*dld.sl.*$gdb_prompt $" {
                pass "step to end of run" 
-               gdb_test "c" ".*" "continue after exit"
+               set program_in_exit 1
            }
            -re ".*Single.*_int_reset.*$gdb_prompt $" {
                pass "step to end of run"
-               setup_xfail "xstormy16-*-*"
+               if {![istarget "xstormy16-*-*"]} {
+                   set program_exited_normally 1
+               }
            }
            -re ".*$gdb_prompt $" {
                fail "step to end of run"
+               set program_not_exited 1
            }
            timeout { 
                fail "(timeout) step to end of run" 
+               set program_not_exited 1
            }
        }   
     }
 
+    if {$program_in_exit} {
+       if {[gdb_test "c" ".*" "continue after exit"] == 0} {
+           set program_exited_normally 1
+       }
+    } else {
+       unsupported "continue after exit"
+    }
+
     set timeout $old_timeout
 
-    gdb_test "n" ".*The program is not being run.*" "don't step after run"
+    if {$program_exited_normally} {
+        gdb_test "n" ".*The program is not being run.*" "don't step after run"
+    } elseif {$program_not_exited} {
+       unresolved "don't step after run"
+    } else {
+       unsupported "don't step after run"
+    }
 
     set exec_output [remote_exec host "ls core"]