aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <pedro@palves.net>2022-05-18 13:22:02 +0100
committerPedro Alves <pedro@palves.net>2022-05-25 13:44:12 +0100
commitcce0ae568c7e30e0a7b8d1bd77f8c4b7d7b8ce7b (patch)
tree14e4c08fb31df4412278a62a4bdf5f739be6d698 /gdb/testsuite/gdb.trace/passc-dyn.exp
parentAdd -nopass option to gdb_test/gdb_test_multiple (diff)
downloadbinutils-gdb-cce0ae568c7e30e0a7b8d1bd77f8c4b7d7b8ce7b.tar.gz
binutils-gdb-cce0ae568c7e30e0a7b8d1bd77f8c4b7d7b8ce7b.tar.bz2
binutils-gdb-cce0ae568c7e30e0a7b8d1bd77f8c4b7d7b8ce7b.zip
gdb: Fix DUPLICATE and PATH regressions throughout
The previous patch to add -prompt/-lbl to gdb_test introduced a regression: Before, you could specify an explicit empty message to indicate you didn't want to PASS, like so: gdb_test COMMAND PATTERN "" After said patch, gdb_test no longer distinguishes no-message-specified vs empty-message, so tests that previously would be silent on PASS, now started emitting PASS messages based on COMMAND. This in turn introduced a number of PATH/DUPLICATE violations in the testsuite. This commit fixes all the regressions I could see. This patch uses the new -nopass feature introduced in the previous commit, but tries to avoid it if possible. Most of the patch fixes DUPLICATE issues the usual way, of using with_test_prefix or explicit unique messages. See previous commit's log for more info. In addition to looking for DUPLICATEs, I also looked for cases where we would now end up with an empty message in gdb.sum, due to a gdb_test being passed both no message and empty command. E.g., this in gdb.ada/bp_reset.exp: gdb_run_cmd gdb_test "" "Breakpoint $decimal, foo\\.nested_sub \\(\\).*" was resulting in this in gdb.sum: PASS: gdb.ada/bp_reset.exp: I fixed such cases by passing an explicit message. We may want to make such cases error out. Tested on x86_64 GNU/Linux, native and native-extended-gdbserver. I see zero PATH cases now. I get zero DUPLICATEs with native testing now. I still see some DUPLICATEs with native-extended-gdbserver, but those were preexisting, unrelated to the gdb_test change. Change-Id: I5375f23f073493e0672190a0ec2e847938a580b2
Diffstat (limited to 'gdb/testsuite/gdb.trace/passc-dyn.exp')
-rw-r--r--gdb/testsuite/gdb.trace/passc-dyn.exp52
1 files changed, 25 insertions, 27 deletions
diff --git a/gdb/testsuite/gdb.trace/passc-dyn.exp b/gdb/testsuite/gdb.trace/passc-dyn.exp
index 32fcecf4ad1..747e4207dd0 100644
--- a/gdb/testsuite/gdb.trace/passc-dyn.exp
+++ b/gdb/testsuite/gdb.trace/passc-dyn.exp
@@ -31,8 +31,6 @@ if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \
return -1
}
gdb_load $binfile
-gdb_test "tstop" ".*" ""
-gdb_test "tfind none" ".*" ""
runto_main
gdb_reinitialize_dir $srcdir/$subdir
@@ -96,40 +94,40 @@ gdb_test "continue" \
"run trace experiment"
gdb_test "tstop" ".*" ""
-gdb_test "tfind none" ".*" ""
-if [gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x -1 x" ""] {
- untested "skipping further tests due to print failure"
- return -1
+with_test_prefix "trace_frame -1" {
+ gdb_test "tfind none" ".*"
+ gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x -1 x" \
+ "print \$trace_frame"
}
-gdb_test "tfind tracepoint $tdp2" ".*" ""
-if [gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 0 x" ""] {
- untested "skipping further tests due to print failure"
- return -1
+with_test_prefix "trace_frame 0" {
+ gdb_test "tfind tracepoint $tdp2" ".*"
+ gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 0 x" \
+ "print \$trace_frame"
}
-gdb_test "tfind tracepoint $tdp3" ".*" ""
-if [gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 1 x" ""] {
- untested "skipping further tests due to print failure"
- return -1
+with_test_prefix "trace_frame 1" {
+ gdb_test "tfind tracepoint $tdp3" ".*"
+ gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 1 x" \
+ "print \$trace_frame"
}
-gdb_test "tfind tracepoint $tdp4" ".*" ""
-if [gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 2 x" ""] {
- untested "skipping further tests due to print failure"
- return -1
+with_test_prefix "trace_frame 2" {
+ gdb_test "tfind tracepoint $tdp4" ".*"
+ gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 2 x" \
+ "print \$trace_frame"
}
-gdb_test "tfind tracepoint $tdp2" ".*" ""
-if [gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 3 x" ""] {
- untested "skipping further tests due to print failure"
- return -1
+with_test_prefix "trace_frame 3" {
+ gdb_test "tfind tracepoint $tdp2" ".*"
+ gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 3 x" \
+ "print \$trace_frame"
}
-gdb_test "tfind tracepoint $tdp3" ".*" ""
-if [gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 4 x" ""] {
- untested "skipping further tests due to print failure"
- return -1
+with_test_prefix "trace_frame 4" {
+ gdb_test "tfind tracepoint $tdp3" ".*"
+ gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 4 x" \
+ "print \$trace_frame"
}
## We should now be at the last frame, because this frame's passcount
@@ -139,5 +137,5 @@ if [gdb_test "printf \"x \%d x\\n\", \$trace_frame" "x 4 x" ""] {
gdb_test "tfind" "failed to find.*" "4.5: dynamic passcount test"
# Finished!
-gdb_test "tfind none" ".*" ""
+gdb_test "tfind none" ".*"