This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] gdb.base/pr10179.exp: fix racy tests (PR testsuite/12649)


On Tuesday 03 May 2011 17:53:05, Marek Polacek wrote:
> > For instance, break.exp doesn't appear to
> > need to match the whole question.
>  
> In break.exp, there are no `gdb_test "delete breakpoints"'.

Right, I was refering its first test: "delete breakpoints".
It doesn't use gdb_test, but I didn't know what was doing
on within gdb_test itself that was causing the race you were
seeing.

> > Not sure the original PR 10179 had something to do with
> > deleting breakpoints, otherwise, there's a delete_breakpoints
> > procedure tests can use to do this.
> 
> I think the best thing here is to make use of the `delete_breakpoints', since
> pr10179.exp addresses to test the `rbreak', not deleting the breakpoints.
> Replacing `gdb_test "delete breakpoints"' with delete_breakpoints also
> cures the races.  IIUC, the race was caused by this part:
> 
> 	"Delete all breakpoints.*" "y"
> 
> Thus, when using read1(), we match the question "Delete all breakpoints?
> (y or n)" right after the "breakpoints" word.  This will leave in the buffer
> "? (y or n)".  The "(y or n)" matches and causes the "interactive prompt" fail.

You're assuming I already knew the fail was of "interactive prompt"
kind.  :-)  I didn't, but I now ran the test and see the failure.  Seeing
this also helps review:

 FAIL: gdb.base/pr10179.exp: delete breakpoints (got interactive prompt)
 FAIL: gdb.base/pr10179.exp: rbreak pr10179-a.c:foo.*
 FAIL: gdb.base/pr10179.exp: rbreak pr10179-a.c : .* (got interactive prompt)

Knowing all this, your original patch was indeed trivial.

> 
> Here is a better patch.  Tested with both read{,1}.  OK now?  Thanks,
> 
> 2011-05-03  Marek Polacek  <mpolacek@redhat.com>
> 
>         * gdb.base/pr10179.exp: Get rid of races using `delete_breakpoints'
>         in place of `gdb_test "delete breakpoints"'.  This eliminates two
>         testcases.

Okay, thanks, this is even better.

-- 
Pedro Alves


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]