aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.trace/while-dyn.exp
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/while-dyn.exp
parentaee9dcf8a836fe08e3d7f1b58a8b6dd2e16d9b68 (diff)
downloadgdb-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.exp61
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.