Fix racy test in gdb.threads/thread-specific-bp.exp
authorYao Qi <yao.qi@linaro.org>
Wed, 5 Apr 2017 13:46:13 +0000 (14:46 +0100)
committerYao Qi <yao.qi@linaro.org>
Wed, 5 Apr 2017 13:46:13 +0000 (14:46 +0100)
I see the following test fail from time to time, due to the racy test
in gdb.threads/thread-specific-bp.exp.

continue -a^M
Continuing.^M
^M
Thread 1 "thread-specific" hit Breakpoint 4, end () at binutils-gdb/gdb/testsuite/gdb.threads/thread-specific-bp.c:29^M
29      }^M
(gdb) [Thread 0x40322460 (LWP 12950) exited]^M
Thread-specific breakpoint 3 deleted - thread 2 no longer in the thread list.^M
FAIL: gdb.threads/thread-specific-bp.exp: non-stop: continue to end (timeout)

This patch changes gdb_test to gdb_test_multiple to match prompt only
instead of both prompt and anchor.

gdb/testsuite:

2017-04-05  Yao Qi  <yao.qi@linaro.org>

* gdb.threads/thread-specific-bp.exp (check_thread_specific_breakpoint):
Use gdb_test_multiple, and don't match anchor.

gdb/ChangeLog
gdb/testsuite/gdb.threads/thread-specific-bp.exp

index abd6dd93680319c692d31b83194dafc8609947ca..92f5b2294d975ec5481cc83810a136210b0313bb 100644 (file)
@@ -1,3 +1,8 @@
+2017-04-05  Yao Qi  <yao.qi@linaro.org>
+
+       * gdb.threads/thread-specific-bp.exp (check_thread_specific_breakpoint):
+       Use gdb_test_multiple, and don't match anchor.
+
 2017-04-05  Pedro Alves  <palves@redhat.com>
 
        * MAINTAINERS (Global Maintainers): Add Simon Marchi.
index bdf12f8fd70fa6a9b2eeb1c72fad550ef87a8cfd..0c7e9fd62887ea7fdd16f0c30b70f68b461a829b 100644 (file)
@@ -87,9 +87,12 @@ proc check_thread_specific_breakpoint {mode} {
        } else {
            set cmd "continue"
        }
-       gdb_test "$cmd" \
-           "Breakpoint .* end .* at .*" \
-           "continue to end"
+       set test "continue to end"
+       gdb_test_multiple "$cmd" $test {
+           -re "Breakpoint .* end .* at .*\r\n$gdb_prompt " {
+               pass $test
+           }
+       }
 
        set test "thread-specific breakpoint was deleted"
        gdb_test_multiple "info breakpoint" $test {