From: Tom de Vries Date: Thu, 9 Mar 2023 11:31:26 +0000 (+0100) Subject: [gdb/testsuite] Fix gdb.threads/thread-specific-bp.exp on native-gdbserver X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=89702edd933a5595557bcd9cc4a0dcc3262226d4;p=binutils-gdb.git [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 2e5843d87c4 ("[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. --- diff --git a/gdb/testsuite/gdb.threads/thread-specific-bp.exp b/gdb/testsuite/gdb.threads/thread-specific-bp.exp index cecf946f5c4..2d1c71a68e3 100644 --- a/gdb/testsuite/gdb.threads/thread-specific-bp.exp +++ b/gdb/testsuite/gdb.threads/thread-specific-bp.exp @@ -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 {