diff options
author | Florian Weimer <fweimer@redhat.com> | 2016-08-26 19:27:16 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2016-08-26 19:40:17 +0200 |
commit | 7e625f7e85b4e88f10dbde35a0641742af581806 (patch) | |
tree | 9548c7d75393d1b9cd033ea0c875936bee6f9a52 /nptl/tst-cond3.c | |
parent | 0ac8ee53e8efbfd6e1c37094b4653f5c2dad65b5 (diff) | |
download | glibc-7e625f7e85b4e88f10dbde35a0641742af581806.tar.gz glibc-7e625f7e85b4e88f10dbde35a0641742af581806.tar.xz glibc-7e625f7e85b4e88f10dbde35a0641742af581806.zip |
nptl: Avoid expected SIGALRM in most tests [BZ #20432]
Before this change, several tests did not detect early deadlocks because they used SIGALRM as the expected signal, and they ran for the full default TIMEOUT seconds. This commit adds a new delayed_exit function to the test skeleton, along with several error-checking wrappers to pthread functions. Additional error checking is introduced into several tests.
Diffstat (limited to 'nptl/tst-cond3.c')
-rw-r--r-- | nptl/tst-cond3.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/nptl/tst-cond3.c b/nptl/tst-cond3.c index ff904e4378..546564fad0 100644 --- a/nptl/tst-cond3.c +++ b/nptl/tst-cond3.c @@ -22,6 +22,10 @@ #include <string.h> #include <unistd.h> +static int do_test (void); + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" /* Note that this test requires more than the standard. It is required that there are no spurious wakeups if only more readers @@ -50,7 +54,8 @@ tf (void *arg) } /* This call should never return. */ - pthread_cond_wait (&cond, &mut); + xpthread_cond_wait (&cond, &mut); + puts ("error: pthread_cond_wait in tf returned"); /* We should never get here. */ exit (1); @@ -96,17 +101,11 @@ do_test (void) } } - /* Set an alarm for 1 second. The wrapper will expect this. */ - alarm (1); + delayed_exit (1); /* This call should never return. */ - pthread_cond_wait (&cond, &mut); + xpthread_cond_wait (&cond, &mut); - puts ("cond_wait returned"); + puts ("error: pthread_cond_wait in do_test returned"); return 1; } - - -#define EXPECTED_SIGNAL SIGALRM -#define TEST_FUNCTION do_test () -#include "../test-skeleton.c" |