Re: [RFA] Handle output after 'Program exited normally' consistently (detect spurious output)

Fred Fish
2006-05-11T14:39:18Z

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"