diff options
author | Pedro Alves <pedro@palves.net> | 2022-05-18 13:22:02 +0100 |
---|---|---|
committer | Pedro Alves <pedro@palves.net> | 2022-05-25 13:44:12 +0100 |
commit | cce0ae568c7e30e0a7b8d1bd77f8c4b7d7b8ce7b (patch) | |
tree | 14e4c08fb31df4412278a62a4bdf5f739be6d698 /gdb/testsuite/gdb.trace/passc-dyn.exp | |
parent | Add -nopass option to gdb_test/gdb_test_multiple (diff) | |
download | binutils-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.exp | 52 |
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" ".*" |