This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Fix racy output matching in gdb.base/memattr.exp


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=2c88253fc469fbf40be7f0d1f7060b81055f2eb1

commit 2c88253fc469fbf40be7f0d1f7060b81055f2eb1
Author: Pedro Alves <palves@redhat.com>
Date:   Thu Nov 9 22:44:08 2017 +0000

    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.

Diff:
---
 gdb/testsuite/ChangeLog            |  4 ++++
 gdb/testsuite/gdb.base/memattr.exp | 12 ++++++------
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 0886647..ffd314c 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,9 @@
 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):
 	New procedures, factored out from ...
 	(top level): ... here, and adjusted to avoid expecting beyond the
diff --git a/gdb/testsuite/gdb.base/memattr.exp b/gdb/testsuite/gdb.base/memattr.exp
index 48f0496..88eb51c 100644
--- a/gdb/testsuite/gdb.base/memattr.exp
+++ b/gdb/testsuite/gdb.base/memattr.exp
@@ -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
     }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]