gdb.base/async.exp: Fix races.
This test is currently racy:
PASS: gdb.base/async.exp: step&
stepi&
(gdb) 0x0000000000400547 14 x = 5; x = 5;
completed.
PASS: gdb.base/async.exp: stepi&
nexti&
(gdb) 15 y = 3;
completed.FAIL: gdb.base/async.exp: nexti&
The problem is here:
-re "^$command\r\n${before_prompt}${gdb_prompt}${after_prompt}completed\.\r\n" {
pass "$command"
}
-re "$gdb_prompt.*completed\.$" {
fail "$command"
}
Note how the fail pattern is a subset of the pass pattern. If the
expect buffer happens to end up with:
"^$command\r\n${before_prompt}${gdb_prompt}${after_prompt}completed\."
that is, the final "\r\n" has't reached the expect buffer yet, but
"completed." has, then the fail pattern matches...
gdb/testsuite/
2014-03-19 Pedro Alves <palves@redhat.com>
* gdb.base/async.exp (test_background): Expect \r\n after
"completed." in the fail pattern.
This commit is contained in:
parent
884e37dceb
commit
8bcfb00a77
@ -1,3 +1,8 @@
|
||||
2014-03-19 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* gdb.base/async.exp (test_background): Expect \r\n after
|
||||
"completed." in the fail pattern.
|
||||
|
||||
2014-03-19 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* gdb.base/async.exp (test_background): New procedure.
|
||||
|
||||
@ -67,7 +67,7 @@ proc test_background {command before_prompt after_prompt {message ""}} {
|
||||
-re "^$command\r\n${before_prompt}${gdb_prompt}${after_prompt}completed\.\r\n" {
|
||||
pass "$message"
|
||||
}
|
||||
-re "$gdb_prompt.*completed\.$" {
|
||||
-re "$gdb_prompt.*completed\.\r\n" {
|
||||
fail "$message"
|
||||
}
|
||||
timeout {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user