diff options
author | Pedro Alves <palves@redhat.com> | 2015-04-23 15:48:26 +0100 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2015-04-23 15:48:26 +0100 |
commit | 749ef8f891fb921cf7ad57062deae6fa8c13b501 (patch) | |
tree | 9f420fb457f0ec54f16501e95c7411fe49481831 /gdb/testsuite/lib | |
parent | 04d824a468650c632d228b977006139f17d646a4 (diff) | |
download | gdb-749ef8f891fb921cf7ad57062deae6fa8c13b501.zip gdb-749ef8f891fb921cf7ad57062deae6fa8c13b501.tar.gz gdb-749ef8f891fb921cf7ad57062deae6fa8c13b501.tar.bz2 |
gdb_test_multiple match eof of any spawn_id
Since silent handling of eof is usually the wrong thing to do, this
patch makes gdb_test_multiple handle it for all $any_spawn_id.
Currently, against gdbserver, interrupt.exp occasionaly fails like
this:
FAIL: gdb.base/interrupt.exp: send end of file
gdb.log with expect debug output enabled shows:
expect: does "\r\n\r\nChild exited with status 0\r\nGDBserver exiting\r\n" (spawn_id exp8) match regular expression "end of file"? Gate "end of file"? gate=no
expect: read eof
expect: set expect_out(spawn_id) "exp8"
expect: set expect_out(buffer) "\r\n\r\nChild exited with status 0\r\nGDBserver exiting\r\n"
FAIL: gdb.base/interrupt.exp: send end of file
Note "expect: read eof" for spawn_id=exp8. exp8 is
inferior_spawn_id/gdbserver_spawn_id. That means
expect/gdb_test_multiple saw gdbserver exit before we got the expected
gdb output. Since there's no explicit pattern for "eof", expect (and
thus gdb_test_multiple) just returns.
After this commit, we get instead:
ERROR: Process no longer exists
UNRESOLVED: gdb.base/interrupt.exp: send end of file
Note that before we still got an FAIL because $saw_inferior_exit is 0
when we get to:
gdb_assert { $saw_eof && $saw_inferior_exit } $msg
Fixing the fail (now unresolved) will be the subject of a separate
patch.
gdb/testsuite/ChangeLog:
2015-04-23 Pedro Alves <palves@redhat.com>
* lib/gdb.exp (gdb_test_multiple): Match eof/full_buffer/timeout
on $any_spawn_id instead of only on $gdb_spawn_id.
Diffstat (limited to 'gdb/testsuite/lib')
-rw-r--r-- | gdb/testsuite/lib/gdb.exp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 7d8720b..73e55e3 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -692,6 +692,7 @@ proc gdb_test_multiple { command message user_code } { global inferior_exited_re upvar timeout timeout upvar expect_out expect_out + global any_spawn_id if { $message == "" } { set message $command @@ -918,6 +919,9 @@ proc gdb_test_multiple { command message user_code } { fail "$message (got breakpoint menu)" set result -1 } + + # Patterns below apply to any spawn id specified. + -i $any_spawn_id eof { perror "Process no longer exists" if { $message != "" } { |