This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA] Handle output after 'Program exited normally' consistently (detect spurious output)
- From: Fred Fish <fnf at specifix dot com>
- To: gdb-patches at sourceware dot org
- Date: Thu, 11 May 2006 10:39:54 -0400
- Subject: Re: [RFA] Handle output after 'Program exited normally' consistently (detect spurious output)
- References: <200605110709.11444.fnf@specifix.com>
- Reply-to: fnf at specifix dot com
On Thursday 11 May 2006 07:09, Fred Fish wrote:
> If we care about testing for cruft between the exit message and the
> gdb prompt, to specifically catch that case, then I think that should
> have it's own dedicated testcase, which I'm happy to write and submit.
I modified the a2-run.exp test to allow it to run the part of the test that
doesn't require being able to pass arguments, and detect spurious output
after the program exits normally. Patch below.
-Fred
2006-05-11 Fred Fish <fnf@specifix.com>
* gdb.base/a2-run.exp: Allow part of test to run when args aren't
required. Check for spurious output after program exits normally.
Index: gdb.base/a2-run.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/a2-run.exp,v
retrieving revision 1.5
diff -c -p -r1.5 a2-run.exp
*** gdb.base/a2-run.exp 7 May 2002 00:45:44 -0000 1.5
--- gdb.base/a2-run.exp 11 May 2006 14:37:50 -0000
***************
*** 20,32 ****
# This file was written by Rob Savoye. (rob@cygnus.com)
- # These tests don't work for targets can't take arguments...
-
- if [target_info exists noargs] then {
- verbose "Skipping a2-run.exp because of noargs."
- return
- }
-
# Can't do this test without stdio support.
if [gdb_skip_stdio_test "a2run.exp"] {
return
--- 20,25 ----
*************** if [istarget "*-*-vxworks*"] then {
*** 77,87 ****
--- 70,90 ----
gdb_expect -re "$gdb_prompt $" {}
} else {
gdb_expect {
+ -re ".*usage: factorial <number>.*Program exited with code 01\.\r\n$gdb_prompt $" {
+ pass "run \"$testfile\" with no args"
+ pass "no spurious messages at program exit"
+ }
-re ".*usage: factorial <number>.*Program exited with code 01.*$gdb_prompt $" {
pass "run \"$testfile\" with no args"
+ fail "no spurious messages at program exit"
+ }
+ -re ".*usage: factorial <number>.* EXIT code 1.*Program exited normally\.\r\n$gdb_prompt $" {
+ pass "run \"$testfile\" with no args (exit wrapper)"
+ pass "no spurious messages at program exit"
}
-re ".*usage: factorial <number>.* EXIT code 1.*Program exited normally.*$gdb_prompt $" {
pass "run \"$testfile\" with no args (exit wrapper)"
+ fail "no spurious messages at program exit"
}
-re ".*$gdb_prompt $" {
fail "run \"$testfile\" with no args"
*************** if [istarget "*-*-vxworks*"] then {
*** 92,97 ****
--- 95,108 ----
}
}
}
+
+ # The remaining tests don't work for targets can't take arguments...
+
+ if [target_info exists noargs] then {
+ verbose "Skipping rest of a2-run.exp because of noargs."
+ return
+ }
+
# Now run with some arguments
if [istarget "*-*-vxworks*"] then {
send_gdb "run vxmain \"5\"\n"