aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <pedro@palves.net>2021-06-14 21:29:32 +0100
committerPedro Alves <pedro@palves.net>2021-06-14 21:29:32 +0100
commitc9923e71ff57ce6e824833560aae59057c6f5783 (patch)
treed3c3a209e1f4c7b335ed38df3203c636db330b75
parent739025e89c44899fd8f41440727748c6467fa7a4 (diff)
downloadbinutils-c9923e71ff57ce6e824833560aae59057c6f5783.zip
binutils-c9923e71ff57ce6e824833560aae59057c6f5783.tar.gz
binutils-c9923e71ff57ce6e824833560aae59057c6f5783.tar.bz2
Fix silent gdb.base/annota1.exp test coverage regression
This commit fixes a test coverage regression caused by: commit b001de2320446ec803b4ee5e0b9710b025b84469 Author: Andrew Burgess <andrew.burgess@embecosm.com> AuthorDate: Mon Nov 26 17:56:39 2018 +0000 Commit: Andrew Burgess <andrew.burgess@embecosm.com> CommitDate: Wed Dec 12 17:33:52 2018 +0000 gdb: Update test pattern to deal with native-extended-gdbserver While looking at a regression caused by a local patch I was working on, I noticed this: pre-prompt (gdb) prompt PASS: gdb.base/annota1.exp: breakpoint info PASS: gdb.base/annota1.exp: run until main breakpoint run post-prompt Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/outputs/gdb.base/annota1/annota1 next Note how above, we get the "run until main breakpoint" pass even before "run" shows up in the log! The issue is that the test isn't really testing anything, it always passes regardless of the gdb output. There are a few problems here, fixed by this commit: - using {} to build the list for [join], when the strings we're joining include variable names that must be expanded. Such list need to be built with [list] instead. - [join] joins strings with a space character by default. We need to pass the empty string as second parameter so that it just concats the strings. - doing too much in a "-re" (calling procedures), which doesn't work correctly. I've seen this before and never digged deeper into why. Probably something to do with how gdb_test_multiple is implemented. Regardless, easy and clear enough to build the pattern first into a variable. gdb/testsuite/ChangeLog: yyyy-mm-dd Pedro Alves <pedro@palves.net> * gdb.base/annota1.exp: Build list using [list] instead of {}. Tell [join] to join with no character. Build expected pattern in separate variable instead of in the -re expression directly. Change-Id: Ib3c89290f0e9ae4a0a43422853fcd4a7a7e12b18
-rw-r--r--gdb/testsuite/ChangeLog6
-rw-r--r--gdb/testsuite/gdb.base/annota1.exp9
2 files changed, 12 insertions, 3 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 815bd58..224dc46 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2021-06-14 Pedro Alves <pedro@palves.net>
+
+ * gdb.base/annota1.exp: Build list using [list] instead of {}.
+ Tell [join] to join with no character. Build expected pattern in
+ separate variable instead of in the -re expression directly.
+
2021-06-11 Kevin Buettner <kevinb@redhat.com>
* gdb.mi/mi-sym-info.exp (114-symbol-info-function test): Increase
diff --git a/gdb/testsuite/gdb.base/annota1.exp b/gdb/testsuite/gdb.base/annota1.exp
index e2a9423..3689f49 100644
--- a/gdb/testsuite/gdb.base/annota1.exp
+++ b/gdb/testsuite/gdb.base/annota1.exp
@@ -126,8 +126,8 @@ gdb_test_multiple "info break" "breakpoint info" {
#
#exp_internal 1
set binexp [string_to_regexp $binfile]
-gdb_test_multiple "run" "run until main breakpoint" {
- -re [join { "\r\n\032\032post-prompt\r\nStarting program: $binexp " \
+
+set run_re [join [list "\r\n\032\032post-prompt\r\nStarting program: $binexp " \
"\(\(\r\nReading \[^\r\n\]+\)|\(\r\nwarning: File transfers from remote targets can be slow\[^\r\n\]+\)\)*" \
"\(\r\nwarning: Skipping \[^\r\n\]+ .gdb_index section in \[^\r\n\]+\r\nDo \"set use-deprecated-index-sections on\" before the file is read\r\nto use the section anyway\\.\)?" \
"\(\(\r\n\r\n\032\032frames-invalid\)|\(\r\n\r\n\032\032breakpoints-invalid\)\)*\r\n\r\n" \
@@ -146,7 +146,10 @@ gdb_test_multiple "run" "run until main breakpoint" {
"\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.*$gdb_prompt$" } ] {
+ "\032\032stopped.*$gdb_prompt$" ] "" ]
+
+gdb_test_multiple "run" "run until main breakpoint" {
+ -re $run_re {
pass $gdb_test_name
}
}