diff options
author | Tom de Vries <tdevries@suse.de> | 2022-04-07 19:25:26 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2022-04-07 19:25:26 +0200 |
commit | 359efc2d894609fcffd24acaf5b35ecb7c8cbc1e (patch) | |
tree | 412ae1c70be5630dd89d6888cb2e0a6400f93f92 /gdb/testsuite | |
parent | d4c4a2298cad06ca71cfef725f5248f68205f0be (diff) | |
download | gdb-359efc2d894609fcffd24acaf5b35ecb7c8cbc1e.zip gdb-359efc2d894609fcffd24acaf5b35ecb7c8cbc1e.tar.gz gdb-359efc2d894609fcffd24acaf5b35ecb7c8cbc1e.tar.bz2 |
[gdb/testsuite] Make gdb.base/annota1.exp more robust
On openSUSE Tumbleweed I run into:
...
FAIL: gdb.base/annota1.exp: run until main breakpoint (timeout)
...
The problem is that the libthread_db message occurs at a location where it's
not expected:
...
Starting program: outputs/gdb.base/annota1/annota1 ^M
^M
^Z^Zstarting^M
^M
^Z^Zframes-invalid^M
[Thread debugging using libthread_db enabled]^M
Using host libthread_db library "/lib64/libthread_db.so.1".^M
^M
^Z^Zbreakpoints-invalid^M
^M
...
Fix this by making the matching more robust:
- rewrite the regexp such that each annotation is on a single line,
starting with \r\n\032\032 and ending with \r\n
- add a regexp variable optional_re, that matches all possible optional
output, and use it as a separator in the first part of the regexp
Tested on x86_64-linux.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/gdb.base/annota1.exp | 71 |
1 files changed, 47 insertions, 24 deletions
diff --git a/gdb/testsuite/gdb.base/annota1.exp b/gdb/testsuite/gdb.base/annota1.exp index c9544ee..40a13e7 100644 --- a/gdb/testsuite/gdb.base/annota1.exp +++ b/gdb/testsuite/gdb.base/annota1.exp @@ -128,41 +128,64 @@ gdb_test_multiple "info break" "breakpoint info" { set binexp [string_to_regexp $binfile] set warning_slow_re \ - "warning: File transfers from remote targets can be slow\[^\r\n\]+" + "warning: File transfers from remote targets can be slow\[^\r\n\]+\r\n" set warning_gdb_index_re \ [multi_line \ "warning: Skipping \[^\r\n\]+ .gdb_index section in \[^\r\n\]+" \ "Do \"set use-deprecated-index-sections on\" before the file is read" \ - "to use the section anyway\\."] + "to use the section anyway\\.\r\n"] set reading_re \ - "Reading \[^\r\n\]+" + "Reading \[^\r\n\]+\r\n" set libthread_db_re \ [multi_line \ "\\\[Thread debugging using libthread_db enabled\\\]" \ - "Using host libthread_db library \[^\r\n\]+"] + "Using host libthread_db library \[^\r\n\]+\r\n"] -set run_re \ +set optional_re \ [list \ - "\r\n\032\032post-prompt\r\nStarting program: $binexp " \ - "\(\(\r\n$reading_re\)|\(\r\n$warning_slow_re\)\)*" \ + "\(" \ + "\($reading_re)" \ + "|" \ + "\($warning_slow_re\)" \ + "|" \ + "\($libthread_db_re\)" \ + "|" \ "\(\r\n$warning_gdb_index_re\)?" \ - "\(\(\r\n\r\n\032\032frames-invalid\)|\(\r\n\r\n\032\032breakpoints-invalid\)\)*\r\n\r\n" \ - "\032\032starting\(\(\r\n$reading_re\)|\(\r\n$warning_slow_re\)|\r\n$libthread_db_re\)*" \ - "\(\(\r\n\r\n\032\032frames-invalid\)|\(\r\n\r\n\032\032breakpoints-invalid\)\)*\r\n\r\n" \ - "\032\032breakpoint 1\r\n\r\n" \ - "Breakpoint 1, \r\n" \ - "\032\032frame-begin 0 $hex\r\n\r\n" \ - "\032\032frame-function-name\r\n" \ - "main\r\n" \ - "\032\032frame-args\r\n \\(\\)\r\n" \ - "\032\032frame-source-begin\r\n at \r\n" \ - "\032\032frame-source-file\r\n.*annota1.c\r\n" \ - "\032\032frame-source-file-end\r\n:\r\n" \ - "\032\032frame-source-line\r\n$main_line\r\n" \ - "\032\032frame-source-end\r\n\r\n\r\n" \ - "\032\032source.*$srcfile:$main_line:.*:beg:$hex\r\n\r\n" \ - "\032\032frame-end\r\n\r\n" \ - "\032\032stopped"] + "\)*"] +set optional_re [join $optional_re ""] + +set run_re \ + [list \ + "\r\n\032\032post-prompt\r\n" \ + "Starting program: $binexp \r\n" \ + $optional_re \ + "\r\n\032\032starting\r\n" \ + $optional_re \ + "\r\n\032\032frames-invalid\r\n" \ + $optional_re \ + "\r\n\032\032breakpoints-invalid\r\n" \ + $optional_re \ + "\r\n\032\032breakpoint 1\r\n" \ + "\r\n" \ + "Breakpoint 1, " \ + "\r\n\032\032frame-begin 0 $hex\r\n" \ + "\r\n\032\032frame-function-name\r\n" \ + "main" \ + "\r\n\032\032frame-args\r\n" \ + " \\(\\)" \ + "\r\n\032\032frame-source-begin\r\n" \ + " at " \ + "\r\n\032\032frame-source-file\r\n" \ + ".*annota1.c" \ + "\r\n\032\032frame-source-file-end\r\n" \ + ":" \ + "\r\n\032\032frame-source-line\r\n" \ + "$main_line" \ + "\r\n\032\032frame-source-end\r\n" \ + "\r\n" \ + "\r\n\032\032source.*$srcfile:$main_line:.*:beg:$hex\r\n" \ + "\r\n\032\032frame-end\r\n" \ + "\r\n\032\032stopped\r\n"] set run_re [join $run_re ""] |