* gdb-testsuite-make-gdb.base-annota1.exp-more-robust.patch * gdb-testsuite-fix-gdb.base-annota1.exp-with-pie.patch - patches added (gdb-patches ml backport): * gdb-tdep-handle-pipe2-syscall-for-amd64.patch * gdb-testsuite-handle-pipe2-syscall-in-gdb.base-catch-syscall.exp.patch * gdb-tdep-support-catch-syscall-pipe2-for-i386.patch - Maintenance script qa.sh: * Add Leap 15.4 x86_64 to know good configs. OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gdb?expand=0&rev=322
128 lines
4.1 KiB
Diff
128 lines
4.1 KiB
Diff
[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.
|
|
|
|
---
|
|
gdb/testsuite/gdb.base/annota1.exp | 71 +++++++++++++++++++++++++-------------
|
|
1 file changed, 47 insertions(+), 24 deletions(-)
|
|
|
|
diff --git a/gdb/testsuite/gdb.base/annota1.exp b/gdb/testsuite/gdb.base/annota1.exp
|
|
index cf0b93e01a3..019c8048fd0 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 ""]
|
|
|