[gdb/testsuite] Fix gdb.base/maint.exp with -readnow
authorTom de Vries <tdevries@suse.de>
Thu, 9 Dec 2021 10:15:34 +0000 (11:15 +0100)
committerTom de Vries <tdevries@suse.de>
Thu, 9 Dec 2021 10:15:34 +0000 (11:15 +0100)
With test-case gdb.base/maint.exp and target board -readnow, I run into:
...
FAIL: gdb.base/maint.exp: maint info line-table w/o a file name
...

The problem is that this and other regexps anchored using '^':
...
    -re "^$gdb_prompt $" {
...
don't trigger because other regexps don't consume the entire preceding line.

This is partly due to the addition of the IS-STMT column.

Fix this by making the regexps consume entire lines.

Tested on x86_64-linux with native and target board readnow, as well as
check-read1 and check-readmore.

gdb/testsuite/gdb.base/maint.exp

index 667f3733c9a7aada474a32bf67a4234c66e9a55c..1bf9b35638dca3d9d9ed7ab8d792fcacaeca0999 100644 (file)
@@ -432,11 +432,11 @@ gdb_test "maint" \
 set saw_srcfile 0
 gdb_test_multiple "maint info line-table" \
     "maint info line-table w/o a file name" {
-    -re "symtab: \[^\n\r\]+${srcfile} \\(\\(struct symtab \\*\\) $hex\\)\r\nlinetable: \\(\\(struct linetable \\*\\) $hex\\):\r\nINDEX\[ \t\]+LINE\[ \t\]+ADDRESS" {
+       -re "symtab: \[^\n\r\]+${srcfile} \\(\\(struct symtab \\*\\) $hex\\)\r\nlinetable: \\(\\(struct linetable \\*\\) $hex\\):\r\nINDEX\[ \t\]+LINE\[ \t\]+ADDRESS\[^\r\n\]*" {
        set saw_srcfile 1
        exp_continue
     }
-    -re "symtab: \[^\n\r\]+ \\(\\(struct symtab \\*\\) $hex\\)\r\nlinetable: \\(\\(struct linetable \\*\\) $hex\\):\r\nINDEX\[ \t\]+LINE\[ \t\]+ADDRESS" {
+    -re "symtab: \[^\n\r\]+ \\(\\(struct symtab \\*\\) $hex\\)\r\nlinetable: \\(\\(struct linetable \\*\\) $hex\\):\r\nINDEX\[ \t\]+LINE\[ \t\]+ADDRESS\[^\r\n\]*" {
        # Match each symtab to avoid overflowing expect's buffer.
        exp_continue
     }
@@ -444,7 +444,7 @@ gdb_test_multiple "maint info line-table" \
        # For symtabs with no linetable.
        exp_continue
     }
-    -re "^$decimal\[ \t\]+$decimal\[ \t\]+$hex\r\n" {
+    -re "^$decimal\[ \t\]+$decimal\[ \t\]+$hex\[^\r\n\]*\r\n" {
        # Line table entries can be long too:
        #
        #  INDEX    LINE ADDRESS
@@ -462,7 +462,7 @@ gdb_test_multiple "maint info line-table" \
        # Match each line to avoid overflowing expect's buffer.
        exp_continue
     }
-    -re "^$decimal\[ \t\]+END\[ \t\]+$hex\r\n" {
+    -re "^$decimal\[ \t\]+END\[ \t\]+$hex\[^\r\n\]*\r\n" {
        # Matches an end marker in the above.
        exp_continue
     }