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

Pedro Alves
2015-09-15T15:45:33Z

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.

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
--
1.9.3