Re: [pushed][PATCH v3 3/4] Extended-remote exec test

Don Breazeal
2015-09-15T15:53:11Z

On 9/15/2015 8:45 AM, Pedro Alves wrote:
> Hi Don,
>
> On 09/11/2015 07:38 PM, Don Breazeal wrote:
>> gdb_breakpoint [gdb_get_line_number "break-here"]
>> - gdb_continue_to_breakpoint "break-here" ".* break-here .*"
>> + gdb_test_multiple "continue" "continue to breakpoint" {
>> + -re ".*Breakpoint.*break-here.*" {
>> + pass "continue to breakpoint"
>> + }
>> + }
>>
>
> This change is causing a regression. Was there a reason for it?
> AFAICS, none of the other non-ldr-exc-*.exp files got this change.

No, I intended to revert that change, which I did for the other
non-ldr-exc-* files. You had pointed out that the change introduced
a race.

>
> Fix below.
>
> From 5cd484be64e40d0423cc7fe8d8355421e4da1fff Mon Sep 17 00:00:00 2001
> From: Pedro Alves <palves@redhat.com>
> Date: Tue, 15 Sep 2015 16:32:19 +0100
> Subject: [PATCH] Fix gdb.threads/non-ldr-exc-3.exp race
>
> 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/gdb.threads/non-ldr-exc-3.exp | 6 +-----
> 1 file changed, 1 insertion(+), 5 deletions(-)
>
> diff --git a/gdb/testsuite/gdb.threads/non-ldr-exc-3.exp b/gdb/testsuite/gdb.threads/non-ldr-exc-3.exp
> index 3e7a3a1..188b825 100644
> --- a/gdb/testsuite/gdb.threads/non-ldr-exc-3.exp
> +++ b/gdb/testsuite/gdb.threads/non-ldr-exc-3.exp
> @@ -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
>