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.
This commit is contained in:
parent
04d824a468
commit
749ef8f891
|
@ -1,3 +1,8 @@
|
|||
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.
|
||||
|
||||
2015-04-21 Pierre Muller <muller@sourceware.org>
|
||||
|
||||
PR pascal/17815
|
||||
|
|
|
@ -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 != "" } {
|
||||
|
|
Loading…
Reference in New Issue