Fix gdb.threads/non-ldr-exc-3.exp race
authorPedro Alves <palves@redhat.com>
Tue, 15 Sep 2015 16:01:59 +0000 (17:01 +0100)
committerPedro Alves <palves@redhat.com>
Tue, 15 Sep 2015 16:01:59 +0000 (17:01 +0100)
gdb.threads/non-ldr-exc-3.exp is sometimes failing like this:

 [Switching to Thread 6831.6832]

 Breakpoint 2, thread_execler (arg=0x0) at /home/pedro/gdb/mygit/build/../src/gdb/testsuite/gdb.threads/non-ldr-exc-3.c:41
 41        if (execl (image, image, argv1, NULL) == -1) /* break-here */
 PASS: gdb.threads/non-ldr-exc-3.exp: lock-sched=on,non-stop=off: continue to breakpoint
 (gdb) set scheduler-locking on
 (gdb) FAIL: gdb.threads/non-ldr-exc-3.exp: lock-sched=on,non-stop=off: set scheduler-locking on

The problem is that the gdb_test_multiple is missing the prompt
anchor.  The problem was introduced by 2fd33e9448.  This reverts the
hunk that introduced the problem, reverting back to
gdb_continue_to_breakpoint.

gdb/testsuite/ChangeLog:
2015-09-15  Pedro Alves  <palves@redhat.com>

* gdb.threads/non-ldr-exc-3.exp (do_test): Use
gdb_continue_to_breakpoint instead of gdb_test_multiple.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.threads/non-ldr-exc-3.exp

index d0bf156..e951a13 100644 (file)
@@ -1,3 +1,8 @@
+2015-09-15  Pedro Alves  <palves@redhat.com>
+
+       * gdb.threads/non-ldr-exc-3.exp (do_test): Use
+       gdb_continue_to_breakpoint instead of gdb_test_multiple.
+
 2015-09-14  Pedro Alves  <palves@redhat.com>
 
        * gdb.base/hook-stop-continue.c: Delete.
index 3e7a3a1..188b825 100644 (file)
@@ -45,11 +45,7 @@ proc do_test { lock_sched nonstop } {
        }
 
        gdb_breakpoint [gdb_get_line_number "break-here"]
-       gdb_test_multiple "continue" "continue to breakpoint" {
-           -re ".*Breakpoint.*break-here.*" {
-               pass "continue to breakpoint"
-           }
-       }
+       gdb_continue_to_breakpoint "break-here" ".* break-here .*"
 
        # Also test with sched-lock to make sure we can follow the
        # non-leader thread execing even though the main thread wasn't