diff options
author | Tom de Vries <tdevries@suse.de> | 2025-01-16 09:39:55 +0100 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2025-01-16 09:39:55 +0100 |
commit | ca263aec20adfffe6f9dab3a18f8a7b24667f99c (patch) | |
tree | 57491b30ed055f081edd5c6be3e3aa7ec3bdf71a /gdb/testsuite/lib | |
parent | a3735a6e3dc20b4902a79290c2885ae362b591cf (diff) | |
download | binutils-ca263aec20adfffe6f9dab3a18f8a7b24667f99c.zip binutils-ca263aec20adfffe6f9dab3a18f8a7b24667f99c.tar.gz binutils-ca263aec20adfffe6f9dab3a18f8a7b24667f99c.tar.bz2 |
[gdb/testsuite] Fix timeouts in gdb.threads/step-over-thread-exit.exp
Once in a while, I run into a timeout in test-case
gdb.threads/step-over-thread-exit.exp:
...
(gdb) continue^M
Continuing.^M
[New Thread 0xfffff7cff1a0 (LWP 2874854)]^M
^M
Thread 97 "step-over-threa" hit Breakpoint 2, 0x0000000000410314 in \
my_exit_syscall () at gdb/testsuite/lib/my-syscalls.S:74^M
74 SYSCALL (my_exit, __NR_exit)^M
(gdb) [Thread 0xfffff7cff1a0 (LWP 2874853) exited]^M
FAIL: $exp: step_over_mode=displaced: non-stop=on: target-non-stop=on: \
schedlock=off: cmd=continue: ns_stop_all=0: iter 95: continue (timeout)
...
I can reproduce it more frequently by running with taskset -c <slow core id>.
Fix this by using -no-prompt-anchor.
This requires us to add -no-prompt-anchor to proc gdb_test_multiple.
Tested on aarch64-linux.
PR testsuite/32489
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=32489
Diffstat (limited to 'gdb/testsuite/lib')
-rw-r--r-- | gdb/testsuite/lib/gdb.exp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 10d7a75..a86d74d 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -1022,6 +1022,10 @@ proc command_to_message { command } { # if one of them matches. If MESSAGE is empty COMMAND will be used. # -prompt PROMPT_REGEXP specifies a regexp matching the expected prompt # after the command output. If empty, defaults to "$gdb_prompt $". +# -no-prompt-anchor specifies that if the default prompt regexp is used, it +# should not be anchored at the end of the buffer. This means that the +# pattern can match even if there is stuff output after the prompt. Does not +# have any effect if -prompt is specified. # -lbl specifies that line-by-line matching will be used. # EXPECT_ARGUMENTS will be fed to expect in addition to the standard # patterns. Pattern elements will be evaluated in the caller's @@ -1121,6 +1125,7 @@ proc gdb_test_multiple { command message args } { set line_by_line 0 set prompt_regexp "" + set prompt_anchor 1 for {set i 0} {$i < [llength $args]} {incr i} { set arg [lindex $args $i] if { $arg == "-prompt" } { @@ -1128,6 +1133,8 @@ proc gdb_test_multiple { command message args } { set prompt_regexp [lindex $args $i] } elseif { $arg == "-lbl" } { set line_by_line 1 + } elseif { $arg == "-no-prompt-anchor" } { + set prompt_anchor 0 } else { set user_code $arg break @@ -1139,7 +1146,7 @@ proc gdb_test_multiple { command message args } { error "Too few arguments to gdb_test_multiple" } - set prompt_regexp [fill_in_default_prompt $prompt_regexp true] + set prompt_regexp [fill_in_default_prompt $prompt_regexp $prompt_anchor] if { $message == "" } { set message [command_to_message $command] |