From 2b1a1355c52c1ab82d792e6af8061be700bc425a Mon Sep 17 00:00:00 2001 From: Michael Snyder Date: Wed, 25 Jul 2001 22:41:43 +0000 Subject: [PATCH] 2001-07-25 Michael Snyder * gdb.base/ending-run.exp: Accept "Program exited normally" as legitimate output from stepping out of main. --- gdb/testsuite/ChangeLog | 5 ++ gdb/testsuite/gdb.base/ending-run.exp | 80 ++++++++++++++++----------- 2 files changed, 54 insertions(+), 31 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 137be01126..5bf1655947 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2001-07-25 Michael Snyder + + * gdb.base/ending-run.exp: Accept "Program exited normally" as + legitimate output from stepping out of main. + 2001-07-22 Keith Seitz * lib/gdb.exp (_gdbtk_xvfb_init): If GDB_DISPLAY is diff --git a/gdb/testsuite/gdb.base/ending-run.exp b/gdb/testsuite/gdb.base/ending-run.exp index 1552d364fa..360edc89f2 100644 --- a/gdb/testsuite/gdb.base/ending-run.exp +++ b/gdb/testsuite/gdb.base/ending-run.exp @@ -140,6 +140,7 @@ if ![gdb_skip_stdio_test "Step to return"] { set old_timeout $timeout set timeout 50 +set program_exited 0 send_gdb "next\n" gdb_expect { -re "33.*$gdb_prompt $" { @@ -160,6 +161,11 @@ gdb_expect { # This is what happens on sparc64-elf ultra. pass "step out of main" } + -re ".*Program exited normally.*$gdb_prompt $" { + # This is what happens on Linux i86 (and I would expect others) + set program_exited 1 + pass "step out of main" + } -re ".*in .nope ().*$gdb_prompt $" { # This is what happens on Solaris currently -sts 1999-08-25 pass "step out of main on Solaris" @@ -185,6 +191,11 @@ gdb_expect { -re ".*in.*\\\$START\\\$.*from.*dld.sl.*$gdb_prompt $" { pass "step out of main 2" } + -re ".*Program exited normally.*$gdb_prompt $" { + # This is what happens on Linux i86 (and I would expect others) + set program_exited 1 + pass "step out of main" + } -re ".*in.*currently asm.*$gdb_prompt $" { pass "step out of main into assembler" } @@ -196,41 +207,48 @@ gdb_expect { } if {![target_info exists use_cygmon] || ![target_info use_cygmon]} { - send_gdb "n\n" - gdb_expect { - -re "Program exited normally.*$gdb_prompt $" { - # If we actually have debug info for the start function, - # then we won't get the "Single-stepping until function - # exit" message. - pass "step to end of run 1" - } - -re ".*Single.*Program exited.*$gdb_prompt $" { - pass "step to end of run 1" - } - -re ".*Single.*in exit.*from.*dld.sl.*$gdb_prompt $" { - pass "step to end of run 2" - gdb_test "c" ".*" "continue after exit" - } - timeout { fail "(timeout) step to end of run" } + global program_exited; + if {[eval expr $program_exited == 0]} { + send_gdb "n\n" + gdb_expect { + -re "Program exited normally.*$gdb_prompt $" { + # If we actually have debug info for the start function, + # then we won't get the "Single-stepping until function + # exit" message. + pass "step to end of run 1" + } + -re ".*Single.*Program exited.*$gdb_prompt $" { + pass "step to end of run 1" + } + -re ".*Single.*in exit.*from.*dld.sl.*$gdb_prompt $" { + pass "step to end of run 2" + gdb_test "c" ".*" "continue after exit" + } + -re ".*$gdb_prompt $" { + fail "step to end of run" + } + timeout { + fail "(timeout) step to end of run" + } + } } - set timeout $old_timeout - - gdb_test "n" ".*The program is not being run.*" "don't step after run" - - set exec_output [remote_exec host "ls core"] - - - if [ regexp "core not found" $exec_output] { - pass "No core dumped on quit" - } else { - if [ regexp "No such file or directory" $exec_output] { - pass "ls: core: No core dumped on quit" + set timeout $old_timeout + + gdb_test "n" ".*The program is not being run.*" "don't step after run" + + set exec_output [remote_exec host "ls core"] + + if [ regexp "core not found" $exec_output] { + pass "No core dumped on quit" } else { - remote_exec build "rm -f core" - fail "Core dumped on quit" + if [ regexp "No such file or directory" $exec_output] { + pass "ls: core: No core dumped on quit" + } else { + remote_exec build "rm -f core" + fail "Core dumped on quit" + } } - } } #remote_exec build "rm -f ${binfile}"