diff options
author | Tom de Vries <tdevries@suse.de> | 2020-02-19 21:33:39 +0100 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2020-02-19 21:33:39 +0100 |
commit | 623563f79db9c2d576303565f8ba1415c911c452 (patch) | |
tree | 907ec08801eba9ff56bf6a834dc385a07e508e6d | |
parent | dfdeeca1cc6b785243a243d190872789417dda19 (diff) | |
download | gdb-623563f79db9c2d576303565f8ba1415c911c452.zip gdb-623563f79db9c2d576303565f8ba1415c911c452.tar.gz gdb-623563f79db9c2d576303565f8ba1415c911c452.tar.bz2 |
[gdb/testsuite] Fix corefile-buildid.exp with check-read1
When running gdb.base/corefile-buildid.exp using check-read1, I run into:
...
FAIL: gdb.base/corefile-buildid.exp: shared: info files (timeout)
FAIL: gdb.base/corefile-buildid.exp: symlink shared: info files (timeout)
FAIL: gdb.base/corefile-buildid.exp: shared sepdebug: info files (timeout)
FAIL: gdb.base/corefile-buildid.exp: symlink shared sepdebug: info files \
(timeout)
...
This is caused by attempting to match the output of an "info files" command
using a single gdb_test in check_exec_file.
Fix this by doing line-by-line matching in check_exec_file.
Tested on x86_64-linux, using make targets check and check-read1.
gdb/testsuite/ChangeLog:
2020-02-19 Tom de Vries <tdevries@suse.de>
* gdb.base/corefile-buildid.exp (check_exec_file): Match info files
output line-by-line.
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/corefile-buildid.exp | 49 |
2 files changed, 53 insertions, 1 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index b2f20fe..e599791 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2020-02-19 Tom de Vries <tdevries@suse.de> + * gdb.base/corefile-buildid.exp (check_exec_file): Match info files + output line-by-line. + +2020-02-19 Tom de Vries <tdevries@suse.de> + * gdb.cp/cpexprs.exp: Remove c++/14186 kfail. 2020-02-19 Tom de Vries <tdevries@suse.de> diff --git a/gdb/testsuite/gdb.base/corefile-buildid.exp b/gdb/testsuite/gdb.base/corefile-buildid.exp index 158cbb6..b9844ee 100644 --- a/gdb/testsuite/gdb.base/corefile-buildid.exp +++ b/gdb/testsuite/gdb.base/corefile-buildid.exp @@ -108,8 +108,55 @@ proc append_debug_dir {debugdir} { # FILE. proc check_exec_file {file} { + global gdb_prompt send_log "expecting exec file \"$file\"\n" - gdb_test "info files" "Local exec file:\[\r\n\t\ \]+`[string_to_regexp $file]'.*" + + # Get line with "Local exec file:". + set ok 0 + gdb_test_multiple "info files" "" { + -re "^Local exec file:\r\n" { + set test_name $gdb_test_name + set ok 1 + } + -re "^$gdb_prompt $" { + fail $gdb_test_name + } + -re "^\[^\r\n\]*\r\n" { + exp_continue + } + } + + if { $ok == 0 } { + return + } + + # Get subsequent line with $file. + set ok 0 + gdb_test_multiple "" $test_name { + -re "^\[\t\ \]+`[string_to_regexp $file]'\[^\r\n\]*\r\n" { + set ok 1 + } + -re "^$gdb_prompt $" { + fail $gdb_test_name + } + -re "^\[^\r\n\]*\r\n" { + exp_continue + } + } + + if { $ok == 0 } { + return + } + + # Skip till prompt. + gdb_test_multiple "" $test_name { + -re "^$gdb_prompt $" { + pass $gdb_test_name + } + -re "^\[^\r\n\]*\r\n" { + exp_continue + } + } } # Test whether gdb can find an exec file from a core file's build-id. |