aboutsummaryrefslogtreecommitdiff
path: root/nptl/tst-eintr5.c
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/tst-eintr5.c')
-rw-r--r--nptl/tst-eintr5.c40
1 files changed, 12 insertions, 28 deletions
diff --git a/nptl/tst-eintr5.c b/nptl/tst-eintr5.c
index 6eee2a166f..da049c4eae 100644
--- a/nptl/tst-eintr5.c
+++ b/nptl/tst-eintr5.c
@@ -23,11 +23,10 @@
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/check.h>
+#include <support/timespec.h>
+#include <support/xthread.h>
+#include <support/xtime.h>
#include "eintr.c"
@@ -39,20 +38,12 @@ static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
static void *
tf (void *arg)
{
- struct timespec ts;
- struct timeval tv;
-
- gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_sec += 10000;
+ struct timespec ts = timespec_add (xclock_now (CLOCK_REALTIME),
+ make_timespec (10000, 0));
/* This call must never return. */
- int e = pthread_cond_timedwait (&c, &m, &ts);
- char buf[100];
- printf ("tf: cond_timedwait returned: %s\n",
- strerror_r (e, buf, sizeof (buf)));
-
- exit (1);
+ TEST_COMPARE (pthread_cond_timedwait (&c, &m, &ts), 0);
+ FAIL_EXIT1 ("pthread_cond_timedwait returned unexpectedly\n");
}
@@ -61,19 +52,12 @@ do_test (void)
{
setup_eintr (SIGUSR1, NULL);
- pthread_t th;
- char buf[100];
- int e = pthread_create (&th, NULL, tf, NULL);
- if (e != 0)
- {
- printf ("main: pthread_create failed: %s\n",
- strerror_r (e, buf, sizeof (buf)));
- exit (1);
- }
+ xpthread_create (NULL, tf, NULL);
delayed_exit (3);
/* This call must never return. */
xpthread_cond_wait (&c, &m);
- puts ("error: pthread_cond_wait returned");
- return 1;
+ FAIL_RET ("error: pthread_cond_wait returned");
}
+
+#include <support/test-driver.c>