Re: [PATCH] Don't run forever in gdb.base/structs.c

Doug Evans
2014-10-02T20:10:09Z

On Wed, Oct 1, 2014 at 4:51 PM, Pedro Alves <palves@redhat.com> wrote:
> On 10/01/2014 10:02 PM, Doug Evans wrote:
>
>> If gdb crashes during testing tests may be left to free-run, eating cpu.
>>
>> This patch fixes one of the more egregious cases since several versions
>> of the program are built.
>>
>> I've got patches to fix others.
>> Just seeing if folks want to comment on this first.
>>
>> IWBN to have the harness itself cleanup, and I think there's something
>> we can do there, but that's not always robust either, and I think
>> multiple levels of robustness would be useful.
>
> Agreed.
>
>> Since this testcase is an egregious one, and since this patch simple,
>> I'm starting with this.
>
> Looks fine with me.

Committed, thanks.

> We already do something like this in many tests even. E.g., of the
> top of my head:
>
> $ grep -rn "Don't run forever. Run just short of it :)" *
> gdb.base/watch_thread_num.c:55: /* Don't run forever. Run just short of it :) */
> gdb.mi/nsintrall.c:55: /* Don't run forever. Run just short of it :) */
> gdb.mi/nsmoribund.c:35: /* Don't run forever. Run just short of it :) */
> gdb.threads/pending-step.c:54: /* Don't run forever. Run just short of it :) */
> gdb.threads/watchthreads.c:71: /* Don't run forever. Run just short of it :) */
> gdb.threads/threadapply.c:72: /* Don't run forever. Run just short of it :) */
> gdb.threads/thread-specific.c:42: /* Don't run forever. Run just short of it :) */
> gdb.threads/thread-specific.c:56: /* Don't run forever. Run just short of it :) */
> gdb.threads/schedlock.c:55: /* Don't run forever. Run just short of it :) */
>
> In a few other tests, we use "alarm()", though IMO it's best to avoid
> that if possible, to expose the test on as much targets as possible.
> E.g., alarm() IIRC isn't available on mingw unless you
> specify __USE_MINGW_ALARM. Bare metal targets may have trouble
> with it too, etc.

Agreed.