diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 8c179f9e15f..723bfd11375 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2015-04-07 Yao Qi + + * 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 * lib/pascal.exp (gpc_compile): Rename dest arg to destfile. diff --git a/gdb/testsuite/gdb.threads/non-stop-fair-events.c b/gdb/testsuite/gdb.threads/non-stop-fair-events.c index 6a9d31d1650..f82c366a681 100644 --- a/gdb/testsuite/gdb.threads/non-stop-fair-events.c +++ b/gdb/testsuite/gdb.threads/non-stop-fair-events.c @@ -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 (); } diff --git a/gdb/testsuite/gdb.threads/non-stop-fair-events.exp b/gdb/testsuite/gdb.threads/non-stop-fair-events.exp index 9b7b9ca2696..e2d3f7d43d4 100644 --- a/gdb/testsuite/gdb.threads/non-stop-fair-events.exp +++ b/gdb/testsuite/gdb.threads/non-stop-fair-events.exp @@ -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 }