Properly set alarm value in gdb.threads/non-stop-fair-events.exp

Nowadays, the alarm value is 60, and alarm is generated on some slow
boards.  This patch is to pass DejaGNU timeout value to the program,
and move the alarm call before going to infinite loop.  If any thread
has activities, the alarm is reset.

gdb/testsuite:

2015-04-07  Yao Qi  <yao.qi@linaro.org>

	* gdb.threads/non-stop-fair-events.c (SECONDS): New macro.
	(child_function): Call alarm.
	(main): Move call to alarm into the loop.
	* gdb.threads/non-stop-fair-events.exp: Build program with
	-DTIMEOUT=$timeout.
This commit is contained in:
Yao Qi 2015-04-07 11:30:07 +01:00
parent ffa547701b
commit 337532fab1
3 changed files with 17 additions and 3 deletions

View File

@ -1,3 +1,11 @@
2015-04-07 Yao Qi <yao.qi@linaro.org>
* gdb.threads/non-stop-fair-events.c (SECONDS): New macro.
(child_function): Call alarm.
(main): Move call to alarm into the loop.
* gdb.threads/non-stop-fair-events.exp: Build program with
-DTIMEOUT=$timeout.
2015-04-06 Doug Evans <xdje42@gmail.com>
* lib/pascal.exp (gpc_compile): Rename dest arg to destfile.

View File

@ -22,6 +22,9 @@
#define NUM_THREADS 10
const int num_threads = NUM_THREADS;
/* Allow for as much timeout as DejaGnu wants, plus a bit of
slack. */
#define SECONDS (TIMEOUT + 20)
pthread_t child_thread[NUM_THREADS];
volatile pthread_t signal_thread;
@ -53,6 +56,8 @@ child_function (void *arg)
while (1)
{
/* Reset the timer before going to INF_LOOP. */
alarm (SECONDS);
INF_LOOP; /* set thread breakpoint here */
loop_broke ();
}
@ -64,8 +69,6 @@ main (void)
int res;
int i;
alarm (60);
signal (SIGUSR1, handler);
for (i = 0; i < NUM_THREADS; i++)
@ -76,6 +79,8 @@ main (void)
while (1)
{
pthread_kill (signal_thread, SIGUSR1); /* set kill breakpoint here */
/* Reset the timer before going to INF_LOOP. */
alarm (SECONDS);
INF_LOOP;
loop_broke ();
}

View File

@ -24,7 +24,8 @@ if [target_info exists gdb,nosignals] {
return -1
}
if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}] == -1} {
set options { "additional_flags=-DTIMEOUT=$timeout" debug pthreads }
if {[prepare_for_testing "failed to prepare" $testfile $srcfile $options] == -1} {
return -1
}