diff options
author | Pedro Alves <palves@redhat.com> | 2014-03-19 15:22:45 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2014-03-19 15:53:00 +0000 |
commit | 8bcfb00a77f64a4496de90355f8c46b0da643e84 (patch) | |
tree | cc4621eaa37e90ee7ade41f3dfcc6c6a5a74d41f | |
parent | 884e37dceb64daa1c6d33f007fb294e809c47847 (diff) | |
download | binutils-8bcfb00a77f64a4496de90355f8c46b0da643e84.zip binutils-8bcfb00a77f64a4496de90355f8c46b0da643e84.tar.gz binutils-8bcfb00a77f64a4496de90355f8c46b0da643e84.tar.bz2 |
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.
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/async.exp | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 509472d..a7237d2 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,10 @@ 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. Use it for all background execution command tests. diff --git a/gdb/testsuite/gdb.base/async.exp b/gdb/testsuite/gdb.base/async.exp index 65bec4d..a1c821c 100644 --- a/gdb/testsuite/gdb.base/async.exp +++ b/gdb/testsuite/gdb.base/async.exp @@ -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 { |