gdb/testsuite: adjust test cases to previous "maintenance info line-table" change

Message ID 20230322151701.453666-1-simon.marchi@polymtl.ca
State New
Headers
Series gdb/testsuite: adjust test cases to previous "maintenance info line-table" change |

Commit Message

Simon Marchi March 22, 2023, 3:17 p.m. UTC
  Commit 904d9b02a185 ("gdb: make "maintenance info line-table" show
relocated addresses again") changed the format of that command, but
failed to adjust some test cases that relied on it.  This patch fixes
it.

The failures fixed are:

    FAIL: gdb.base/maint.exp: maint info line-table w/o a file name
    FAIL: gdb.dwarf2/dw2-out-of-range-end-of-seq.exp: END with address 1 eliminated
    FAIL: gdb.dwarf2/dw2-ranges-base.exp: count END markers in line table

Change-Id: I946580d5e100f1beeac99a9e90d7819c6bb4ac6c
---
 gdb/testsuite/gdb.base/maint.exp                         | 8 ++++----
 gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp | 4 ++--
 gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp             | 6 +++---
 3 files changed, 9 insertions(+), 9 deletions(-)


base-commit: bf3f6c02d73f9823b8cb4f59524f29fbbfb6126d
  

Comments

Tom de Vries March 22, 2023, 6:01 p.m. UTC | #1
On 3/22/23 16:17, Simon Marchi via Gdb-patches wrote:
> Commit 904d9b02a185 ("gdb: make "maintenance info line-table" show
> relocated addresses again") changed the format of that command, but
> failed to adjust some test cases that relied on it.  This patch fixes
> it.
> 
> The failures fixed are:
> 
>      FAIL: gdb.base/maint.exp: maint info line-table w/o a file name
>      FAIL: gdb.dwarf2/dw2-out-of-range-end-of-seq.exp: END with address 1 eliminated
>      FAIL: gdb.dwarf2/dw2-ranges-base.exp: count END markers in line table
> 

Hi,

I did a clean build and test run, and confirmed that these are the only 
three regressions.

Then I applied this patch, and verified that if fixes the regressions.

LGTM.

Thanks,
- Tom

> Change-Id: I946580d5e100f1beeac99a9e90d7819c6bb4ac6c
> ---
>   gdb/testsuite/gdb.base/maint.exp                         | 8 ++++----
>   gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp | 4 ++--
>   gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp             | 6 +++---
>   3 files changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp
> index 98e23b40ef65..c05d0987e7fa 100644
> --- a/gdb/testsuite/gdb.base/maint.exp
> +++ b/gdb/testsuite/gdb.base/maint.exp
> @@ -386,11 +386,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\[^\r\n\]*" {
> +    -re "symtab: \[^\n\r\]+${srcfile} \\(\\(struct symtab \\*\\) $hex\\)\r\nlinetable: \\(\\(struct linetable \\*\\) $hex\\):\r\nINDEX\[ \t\]+LINE\[ \t\]+REL-ADDRESS\[ \t\]+UNREL-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\[^\r\n\]*" {
> +    -re "symtab: \[^\n\r\]+ \\(\\(struct symtab \\*\\) $hex\\)\r\nlinetable: \\(\\(struct linetable \\*\\) $hex\\):\r\nINDEX\[ \t\]+LINE\[ \t\]+REL-ADDRESS\[ \t\]+UNREL-ADDRESS\[^\r\n\]*" {
>   	# Match each symtab to avoid overflowing expect's buffer.
>   	exp_continue
>       }
> @@ -398,7 +398,7 @@ gdb_test_multiple "maint info line-table" \
>   	# For symtabs with no linetable.
>   	exp_continue
>       }
> -    -re "^$decimal\[ \t\]+$decimal\[ \t\]+$hex\[^\r\n\]*\r\n" {
> +    -re "^$decimal\[ \t\]+$decimal\[ \t\]+$hex\[ \t\]+$hex\[^\r\n\]*\r\n" {
>   	# Line table entries can be long too:
>   	#
>   	#  INDEX    LINE ADDRESS
> @@ -416,7 +416,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\]*\r\n" {
> +    -re "^$decimal\[ \t\]+END\[ \t\]+$hex\[ \t\]+$hex\[^\r\n\]*\r\n" {
>   	# Matches an end marker in the above.
>   	exp_continue
>       }
> diff --git a/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp b/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp
> index c0a33b95b653..bd3ea5b5d548 100644
> --- a/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp
> +++ b/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp
> @@ -85,10 +85,10 @@ if ![runto_main] {
>   
>   set test "END with address 1 eliminated"
>   gdb_test_multiple "maint info line-table $srcfile$" $test {
> -    -re -wrap "END *0x0*1 *Y *\r\n.*" {
> +    -re -wrap "END *0x0*1 *$hex *Y *\r\n.*" {
>   	fail $gdb_test_name
>       }
> -    -re -wrap "END *$hex *Y *" {
> +    -re -wrap "END *$hex *$hex *Y *" {
>   	pass $gdb_test_name
>       }
>   }
> diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
> index 147e943361e0..ee274ee128c4 100644
> --- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
> +++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
> @@ -145,7 +145,7 @@ set prev -1
>   set seq_count 0
>   gdb_test_multiple "maint info line-table gdb.dwarf2/dw2-ranges-base.c" \
>       "count END markers in line table" {
> -	-re "^$decimal\[ \t\]+$decimal\[ \t\]+$hex\(\[ \t\]+Y\)? *\r\n" {
> +	-re "^$decimal\[ \t\]+$decimal\[ \t\]+$hex\[ \t\]+$hex\(\[ \t\]+Y\)? *\r\n" {
>   	    if { $prev != -1 } {
>   		gdb_assert "$prev == 1" \
>   		    "prev of normal entry at $seq_count is end marker"
> @@ -154,7 +154,7 @@ gdb_test_multiple "maint info line-table gdb.dwarf2/dw2-ranges-base.c" \
>   	    incr seq_count
>   	    exp_continue
>   	}
> -	-re "^$decimal\[ \t\]+END\[ \t\]+$hex\(\[ \t\]+Y\)? *\r\n" {
> +	-re "^$decimal\[ \t\]+END\[ \t\]+$hex\[ \t\]+$hex\(\[ \t\]+Y\)? *\r\n" {
>   	    if { $prev != -1 } {
>   		gdb_assert "$prev == 0" \
>   		    "prev of end marker at $seq_count is normal entry"
> @@ -174,7 +174,7 @@ gdb_test_multiple "maint info line-table gdb.dwarf2/dw2-ranges-base.c" \
>   	-re ".*linetable: \\(\\(struct linetable \\*\\) 0x0\\):\r\nNo line table.\r\n" {
>   	    exp_continue
>   	}
> -	-re ".*linetable: \\(\\(struct linetable \\*\\) $hex\\):\r\nINDEX\[ \t\]+LINE\[ \t\]+ADDRESS\[ \t\]+IS-STMT\[ \t\]PROLOGUE-END *\r\n" {
> +	-re ".*linetable: \\(\\(struct linetable \\*\\) $hex\\):\r\nINDEX\[ \t\]+LINE\[ \t\]+REL-ADDRESS\[ \t\]+UNREL-ADDRESS\[ \t\]+IS-STMT\[ \t\]PROLOGUE-END *\r\n" {
>   	    exp_continue
>   	}
>       }
> 
> base-commit: bf3f6c02d73f9823b8cb4f59524f29fbbfb6126d
  
Simon Marchi March 22, 2023, 7:14 p.m. UTC | #2
> I did a clean build and test run, and confirmed that these are the only three regressions.
> 
> Then I applied this patch, and verified that if fixes the regressions.
> 
> LGTM.
> 
> Thanks,
> - Tom

Thanks, pushed.

Simon
  

Patch

diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp
index 98e23b40ef65..c05d0987e7fa 100644
--- a/gdb/testsuite/gdb.base/maint.exp
+++ b/gdb/testsuite/gdb.base/maint.exp
@@ -386,11 +386,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\[^\r\n\]*" {
+    -re "symtab: \[^\n\r\]+${srcfile} \\(\\(struct symtab \\*\\) $hex\\)\r\nlinetable: \\(\\(struct linetable \\*\\) $hex\\):\r\nINDEX\[ \t\]+LINE\[ \t\]+REL-ADDRESS\[ \t\]+UNREL-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\[^\r\n\]*" {
+    -re "symtab: \[^\n\r\]+ \\(\\(struct symtab \\*\\) $hex\\)\r\nlinetable: \\(\\(struct linetable \\*\\) $hex\\):\r\nINDEX\[ \t\]+LINE\[ \t\]+REL-ADDRESS\[ \t\]+UNREL-ADDRESS\[^\r\n\]*" {
 	# Match each symtab to avoid overflowing expect's buffer.
 	exp_continue
     }
@@ -398,7 +398,7 @@  gdb_test_multiple "maint info line-table" \
 	# For symtabs with no linetable.
 	exp_continue
     }
-    -re "^$decimal\[ \t\]+$decimal\[ \t\]+$hex\[^\r\n\]*\r\n" {
+    -re "^$decimal\[ \t\]+$decimal\[ \t\]+$hex\[ \t\]+$hex\[^\r\n\]*\r\n" {
 	# Line table entries can be long too:
 	#
 	#  INDEX    LINE ADDRESS
@@ -416,7 +416,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\]*\r\n" {
+    -re "^$decimal\[ \t\]+END\[ \t\]+$hex\[ \t\]+$hex\[^\r\n\]*\r\n" {
 	# Matches an end marker in the above.
 	exp_continue
     }
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp b/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp
index c0a33b95b653..bd3ea5b5d548 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp
@@ -85,10 +85,10 @@  if ![runto_main] {
 
 set test "END with address 1 eliminated"
 gdb_test_multiple "maint info line-table $srcfile$" $test {
-    -re -wrap "END *0x0*1 *Y *\r\n.*" {
+    -re -wrap "END *0x0*1 *$hex *Y *\r\n.*" {
 	fail $gdb_test_name
     }
-    -re -wrap "END *$hex *Y *" {
+    -re -wrap "END *$hex *$hex *Y *" {
 	pass $gdb_test_name
     }
 }
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
index 147e943361e0..ee274ee128c4 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
@@ -145,7 +145,7 @@  set prev -1
 set seq_count 0
 gdb_test_multiple "maint info line-table gdb.dwarf2/dw2-ranges-base.c" \
     "count END markers in line table" {
-	-re "^$decimal\[ \t\]+$decimal\[ \t\]+$hex\(\[ \t\]+Y\)? *\r\n" {
+	-re "^$decimal\[ \t\]+$decimal\[ \t\]+$hex\[ \t\]+$hex\(\[ \t\]+Y\)? *\r\n" {
 	    if { $prev != -1 } {
 		gdb_assert "$prev == 1" \
 		    "prev of normal entry at $seq_count is end marker"
@@ -154,7 +154,7 @@  gdb_test_multiple "maint info line-table gdb.dwarf2/dw2-ranges-base.c" \
 	    incr seq_count
 	    exp_continue
 	}
-	-re "^$decimal\[ \t\]+END\[ \t\]+$hex\(\[ \t\]+Y\)? *\r\n" {
+	-re "^$decimal\[ \t\]+END\[ \t\]+$hex\[ \t\]+$hex\(\[ \t\]+Y\)? *\r\n" {
 	    if { $prev != -1 } {
 		gdb_assert "$prev == 0" \
 		    "prev of end marker at $seq_count is normal entry"
@@ -174,7 +174,7 @@  gdb_test_multiple "maint info line-table gdb.dwarf2/dw2-ranges-base.c" \
 	-re ".*linetable: \\(\\(struct linetable \\*\\) 0x0\\):\r\nNo line table.\r\n" {
 	    exp_continue
 	}
-	-re ".*linetable: \\(\\(struct linetable \\*\\) $hex\\):\r\nINDEX\[ \t\]+LINE\[ \t\]+ADDRESS\[ \t\]+IS-STMT\[ \t\]PROLOGUE-END *\r\n" {
+	-re ".*linetable: \\(\\(struct linetable \\*\\) $hex\\):\r\nINDEX\[ \t\]+LINE\[ \t\]+REL-ADDRESS\[ \t\]+UNREL-ADDRESS\[ \t\]+IS-STMT\[ \t\]PROLOGUE-END *\r\n" {
 	    exp_continue
 	}
     }