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/while-dyn.exp | |
parent | aee9dcf8a836fe08e3d7f1b58a8b6dd2e16d9b68 (diff) | |
download | gdb-cce0ae568c7e30e0a7b8d1bd77f8c4b7d7b8ce7b.zip gdb-cce0ae568c7e30e0a7b8d1bd77f8c4b7d7b8ce7b.tar.gz gdb-cce0ae568c7e30e0a7b8d1bd77f8c4b7d7b8ce7b.tar.bz2 |
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/while-dyn.exp')
-rw-r--r-- | gdb/testsuite/gdb.trace/while-dyn.exp | 61 |
1 files changed, 26 insertions, 35 deletions
diff --git a/gdb/testsuite/gdb.trace/while-dyn.exp b/gdb/testsuite/gdb.trace/while-dyn.exp index ee8ba6b..c77bad7 100644 --- a/gdb/testsuite/gdb.trace/while-dyn.exp +++ b/gdb/testsuite/gdb.trace/while-dyn.exp @@ -33,8 +33,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 @@ -53,49 +51,42 @@ proc test_while_stepping { while_stepping } { global gdb_prompt global executable - clean_restart $executable + with_test_prefix "$while_stepping" { + clean_restart $executable - gdb_test "tstop" ".*" "" - gdb_test "tfind none" ".*" "" - runto_main + runto_main - ## verify number of trace frames collected matches stepcount + ## verify number of trace frames collected matches stepcount - gdb_delete_tracepoints - gdb_test "trace gdb_c_test" \ - "Tracepoint $decimal at .*" \ - "$while_stepping: Set tracepoint at gdb_c_test" + gdb_delete_tracepoints + gdb_test "trace gdb_c_test" \ + "Tracepoint $decimal at .*" \ + "Set tracepoint at gdb_c_test" - gdb_trace_setactions "5.12: define $while_stepping <stepcount>" \ - "" \ - "collect \$$fpreg" "^$" \ - "$while_stepping 5" "^$" \ - "collect p" "^$" \ - "end" "^$" \ - "end" "" + gdb_trace_setactions "define $while_stepping <stepcount>" \ + "" \ + "collect \$$fpreg" "^$" \ + "$while_stepping 5" "^$" \ + "collect p" "^$" \ + "end" "^$" \ + "end" "" - gdb_test "tstart" ".*" "" + gdb_test "tstart" ".*" - gdb_breakpoint "end" qualified - gdb_test "continue" \ - "Continuing.*Breakpoint $decimal, end.*" \ - "$while_stepping: run trace experiment" + gdb_breakpoint "end" qualified + gdb_test "continue" \ + "Continuing.*Breakpoint $decimal, end.*" \ + "run trace experiment" - gdb_test "tstop" ".*" "" + gdb_test "tstop" ".*" - gdb_tfind_test "$while_stepping: frame 5 should be the last one collected" "5" "5" + gdb_tfind_test "frame 5 should be the last one collected" "5" "5" - set test "$while_stepping: trace stopped after 5 stepping frames" - gdb_test_multiple "tfind 6" "$test" { - -re "failed to find.*$gdb_prompt $" { - pass "$test" - } - -re ".*$gdb_prompt $" { - fail "$test" - } - } + gdb_test "tfind 6" "failed to find.*" \ + "trace stopped after 5 stepping frames" - gdb_test "tfind none" ".*" "" + gdb_test "tfind none" ".*" + } } # Test all while-stepping aliases. |