Fix racy output matching in gdb.base/memattr.exp

Testing with:
 $ make check-read1 TESTS="gdb.base/memattr.exp"


Exposes a testcase bug that can result in racy fails:

  info mem
  Using user-defined memory regions.
  Num Enb Low Addr           High Addr          Attrs
  1   y   0x0000000000601060 0x0000000000601160 wo nocache
  2   y   0x0000000000601180 0x0000000000601280 ro nocache
  4   y   0x0000000000601280 0x0000000000601380 rw nocache
  3   y   0x0000000000601380 0x0000000000601480 rw nocache
  5   y   0x0000000000601480 0x0000000000601580 rw nocache
  (gdb) FAIL: gdb.base/memattr.exp: info mem (1)

The problem is that:

  "Attrs\[^\n\r]*.."

matches:

  "Attrs \r"

when the output buffer is filled with partial output like this:

  "info mem\r\nUsing user-defined memory regions.\r\nNum Enb Low Addr           High Addr          Attrs \r"

gdb/testsuite/ChangeLog:
2017-11-09  Pedro Alves  <palves@redhat.com>

	* gdb.base/memattr.exp: Tighten regexes to match the end line.
This commit is contained in:
Pedro Alves 2017-11-09 22:44:08 +00:00
parent c7a3851716
commit 2c88253fc4
2 changed files with 10 additions and 6 deletions

View File

@ -1,3 +1,7 @@
2017-11-09 Pedro Alves <palves@redhat.com>
* gdb.base/memattr.exp: Tighten regexes to match the end line.
2017-11-09 Pedro Alves <palves@redhat.com>
* gdb.base/completion.exp (ignore_and_resync, test_tab_complete):

View File

@ -114,30 +114,30 @@ set see4 0
set see5 0
set info_mem_header_pattern \
"info mem.*Num\[ \t\]+Enb\[ \t\]+Low\[ \t\]+Addr\[ \t\]+High\[ \t\]+Addr\[ \t\]+Attrs\[^\n\r]*.."
"info mem.*Num\[ \t\]+Enb\[ \t\]+Low\[ \t\]+Addr\[ \t\]+High\[ \t\]+Addr\[ \t\]+Attrs\[^\r\n\]*\r\n"
gdb_test_multiple "info mem" "info mem(1)" {
-re ${info_mem_header_pattern} {
# Discard the header.
exp_continue
}
-re "^1 y \[ \t\]+$hex $hex wo nocache \[^\r\n\]*.." {
-re "^1 y \[ \t\]+$hex $hex wo nocache \[^\r\n\]*\r\n" {
set see1 1
exp_continue
}
-re "^2 y \[ \t\]+$hex $hex ro nocache \[^\r\n\]*.." {
-re "^2 y \[ \t\]+$hex $hex ro nocache \[^\r\n\]*\r\n" {
set see2 1
exp_continue
}
-re "^3 y \[ \t\]+$hex $hex rw nocache \[^\r\n\]*.." {
-re "^3 y \[ \t\]+$hex $hex rw nocache \[^\r\n\]*\r\n" {
set see3 1
exp_continue
}
-re "^4 y \[ \t\]+$hex $hex rw nocache \[^\r\n\]*.." {
-re "^4 y \[ \t\]+$hex $hex rw nocache \[^\r\n\]*\r\n" {
set see4 1
exp_continue
}
-re "^5 y \[ \t\]+$hex $hex rw nocache \[^\r\n\]*.." {
-re "^5 y \[ \t\]+$hex $hex rw nocache \[^\r\n\]*\r\n" {
set see5 1
exp_continue
}