[gdb/testsuite] Add regression test for PR30325
authorTom de Vries <tdevries@suse.de>
Fri, 14 Apr 2023 11:47:19 +0000 (13:47 +0200)
committerTom de Vries <tdevries@suse.de>
Fri, 14 Apr 2023 11:47:19 +0000 (13:47 +0200)
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.

Approved-By: Andrew Burgess <aburgess@redhat.com>
gdb/testsuite/gdb.tui/main.exp
gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.exp

index e5f26c7aac3322bfc581d5e961ad8a6f1e582f73..7fc9969044f0bc30b72ca2d4179741ea8d283ab0 100644 (file)
@@ -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"
index d32310fffccb89fc029d6f439ca1dc22a5876112..9014622d35c71fd368772c9e2b78cae100a32304 100644 (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.