forked from Imagelibrary/binutils-gdb
[gdb/testsuite] Fix gdb.threads/thread-specific-bp.exp on native-gdbserver
With test-case gdb.threads/thread-specific-bp.exp and target board
native-gdbserver I run into:
...
(gdb) PASS: gdb.threads/thread-specific-bp.exp: non_stop=off: thread 1 selected
continue^M
Continuing.^M
Thread-specific breakpoint 3 deleted - thread 2 no longer in the thread list.^M
^M
Thread 1 "thread-specific" hit Breakpoint 4, end () at \
thread-specific-bp.c:29^M
29 }^M
(gdb) FAIL: gdb.threads/thread-specific-bp.exp: non_stop=off: \
continue to end (timeout)
...
The problem is that the test-case tries to match the "[Thread ... exited]"
message which we do see with native testing:
...
Continuing.^M
[Thread 0x7ffff746e700 (LWP 7047) exited]^M
Thread-specific breakpoint 3 deleted - thread 2 no longer in the thread list.^M
...
The fact that the message is missing was reported as PR remote/30129.
We could add a KFAIL for this, but the functionality the test-case is trying
to test has nothing to do with the message, so it should pass. I only added
matching of the message in commit 2e5843d87c ("[gdb/testsuite] Fix
gdb.threads/thread-specific-bp.exp") to handle a race, not realizing doing so
broke testing on native-gdbserver.
Fix this by matching the "Thread-specific breakpoint $decimal deleted" message
instead.
Tested on x86_64-linux.
This commit is contained in:
@@ -90,8 +90,14 @@ proc check_thread_specific_breakpoint {non_stop} {
|
||||
set test "continue to end"
|
||||
set thread_exited 0
|
||||
set prompt 0
|
||||
set msg_re \
|
||||
[join \
|
||||
[list \
|
||||
"Thread-specific breakpoint 3 deleted" \
|
||||
"-" \
|
||||
"thread 2 no longer in the thread list\\."]]
|
||||
gdb_test_multiple "$cmd" $test -lbl {
|
||||
-re "(^|\r\n)\\\[Thread \[^\r\n\]* exited](?=\r\n)" {
|
||||
-re "(^|\r\n)${msg_re}(?=\r\n)" {
|
||||
if { $prompt } {
|
||||
pass $gdb_test_name
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user