aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2020-02-19 21:33:39 +0100
committerTom de Vries <tdevries@suse.de>2020-02-19 21:33:39 +0100
commit623563f79db9c2d576303565f8ba1415c911c452 (patch)
tree907ec08801eba9ff56bf6a834dc385a07e508e6d
parentdfdeeca1cc6b785243a243d190872789417dda19 (diff)
downloadgdb-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/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.base/corefile-buildid.exp49
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.