[gdb/testsuite] Add regression test for PR30325
Commit Message
Add regression tests for PR30325, one for the asm window and one for the
source window.
Use maint set tui-left-margin verbose to make the extend of the left margin
clear.
Tested on x86_64-linux.
---
gdb/testsuite/gdb.tui/main.exp | 9 ++++++++-
gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.exp | 11 +++++++++--
2 files changed, 17 insertions(+), 3 deletions(-)
base-commit: f96328accde1e6302b62aa880675594618079cb3
Comments
Tom de Vries <tdevries@suse.de> writes:
> Add regression tests for PR30325, one for the asm window and one for the
> source window.
>
> Use maint set tui-left-margin verbose to make the extend of the left margin
> clear.
>
> Tested on x86_64-linux.
LGTM. Thanks for doing this.
Approved-By: Andrew Burgess <aburgess@redhat.com>
Thanks,
Andrew
> ---
> gdb/testsuite/gdb.tui/main.exp | 9 ++++++++-
> gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.exp | 11 +++++++++--
> 2 files changed, 17 insertions(+), 3 deletions(-)
>
> diff --git a/gdb/testsuite/gdb.tui/main.exp b/gdb/testsuite/gdb.tui/main.exp
> index e5f26c7aac3..7fc9969044f 100644
> --- a/gdb/testsuite/gdb.tui/main.exp
> +++ b/gdb/testsuite/gdb.tui/main.exp
> @@ -26,16 +26,23 @@ if {[build_executable "failed to prepare" ${testfile} ${srcfile}] == -1} {
> # Note: don't pass the executable here
> Term::clean_restart 24 80
>
> +set line " return 0;"
> +set nr [gdb_get_line_number $line]
> +
> # Later on we'd like to avoid having to answer a question.
> gdb_test_no_output "set interactive-mode off"
>
> +# Show the left margin using tui-left-margin-verbose.
> +gdb_test_no_output "maint set tui-left-margin-verbose on"
> +
> if {![Term::enter_tui]} {
> unsupported "TUI not supported"
> return
> }
>
> Term::command "file [standard_output_file $testfile]"
> -Term::check_contents "show main after file" "\\|.*21 *return 0"
> +Term::check_contents "show main after file" \
> + [string_to_regexp "|___[format %06d $nr]_$line"]
>
> # Ensure that "file" clears the source window.
> Term::command "file"
> diff --git a/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.exp b/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.exp
> index d32310fffcc..9014622d35c 100644
> --- a/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.exp
> +++ b/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.exp
> @@ -37,6 +37,9 @@ if { $gdb_file_cmd_debug_info == "nodebug" } {
> return
> }
>
> +# Show the left margin using tui-left-margin-verbose.
> +gdb_test_no_output "maint set tui-left-margin-verbose on"
> +
> # This puts us into TUI mode, and should display the ASM window.
> Term::command_no_prompt_prefix "layout asm"
> Term::check_box_contents "check asm box contents" 0 0 80 15 "<_start>"
> @@ -44,13 +47,17 @@ Term::check_box_contents "check asm box contents" 0 0 80 15 "<_start>"
> # Record the first line of output, we'll need this later.
> set first_line [Term::get_line 1]
>
> +# Check that the left margin contains three underscores.
> +gdb_assert { [string match "|___0x*" $first_line] } \
> + "check verbose left margin"
> +
> # Scroll forward a large amount, this should take us to the last
> # instruction in the program.
> Term::command "+ 13"
> Term::check_box_contents "check asm box contents again" 0 0 80 15 \
> [multi_line \
> - "^ *$hex\[^\r\n\]+" \
> - "\\s+"]
> + "^___$hex\[^\r\n\]+" \
> + "___\\s+"]
>
> # Now scroll backward again, we should return to the start of the
> # program.
>
> base-commit: f96328accde1e6302b62aa880675594618079cb3
> --
> 2.35.3
@@ -26,16 +26,23 @@ if {[build_executable "failed to prepare" ${testfile} ${srcfile}] == -1} {
# Note: don't pass the executable here
Term::clean_restart 24 80
+set line " return 0;"
+set nr [gdb_get_line_number $line]
+
# Later on we'd like to avoid having to answer a question.
gdb_test_no_output "set interactive-mode off"
+# Show the left margin using tui-left-margin-verbose.
+gdb_test_no_output "maint set tui-left-margin-verbose on"
+
if {![Term::enter_tui]} {
unsupported "TUI not supported"
return
}
Term::command "file [standard_output_file $testfile]"
-Term::check_contents "show main after file" "\\|.*21 *return 0"
+Term::check_contents "show main after file" \
+ [string_to_regexp "|___[format %06d $nr]_$line"]
# Ensure that "file" clears the source window.
Term::command "file"
@@ -37,6 +37,9 @@ if { $gdb_file_cmd_debug_info == "nodebug" } {
return
}
+# Show the left margin using tui-left-margin-verbose.
+gdb_test_no_output "maint set tui-left-margin-verbose on"
+
# This puts us into TUI mode, and should display the ASM window.
Term::command_no_prompt_prefix "layout asm"
Term::check_box_contents "check asm box contents" 0 0 80 15 "<_start>"
@@ -44,13 +47,17 @@ Term::check_box_contents "check asm box contents" 0 0 80 15 "<_start>"
# Record the first line of output, we'll need this later.
set first_line [Term::get_line 1]
+# Check that the left margin contains three underscores.
+gdb_assert { [string match "|___0x*" $first_line] } \
+ "check verbose left margin"
+
# Scroll forward a large amount, this should take us to the last
# instruction in the program.
Term::command "+ 13"
Term::check_box_contents "check asm box contents again" 0 0 80 15 \
[multi_line \
- "^ *$hex\[^\r\n\]+" \
- "\\s+"]
+ "^___$hex\[^\r\n\]+" \
+ "___\\s+"]
# Now scroll backward again, we should return to the start of the
# program.