From 44ac6ee97a111ab3680a9e95f013cbd8d0b02e48 Mon Sep 17 00:00:00 2001 From: Mike Crowe Date: Thu, 9 May 2019 14:17:23 -0300 Subject: nptl/tst-abstime: Use libsupport Checked on x86_64-linux-gnu and i686-linux-gnu. * nptl/tst-abstime.c: Use libsupport. Reviewed-by: Adhemerval Zanella --- nptl/tst-abstime.c | 70 ++++++++++++++---------------------------------------- 1 file changed, 18 insertions(+), 52 deletions(-) (limited to 'nptl') diff --git a/nptl/tst-abstime.c b/nptl/tst-abstime.c index 71610f8..56fb8a5 100644 --- a/nptl/tst-abstime.c +++ b/nptl/tst-abstime.c @@ -20,6 +20,8 @@ #include #include #include +#include +#include static pthread_cond_t c = PTHREAD_COND_INITIALIZER; static pthread_mutex_t m1 = PTHREAD_MUTEX_INITIALIZER; @@ -31,67 +33,31 @@ static sem_t sem; static void * th (void *arg) { - long int res = 0; - int r; struct timespec t = { -2, 0 }; - r = pthread_mutex_timedlock (&m1, &t); - if (r != ETIMEDOUT) - { - puts ("pthread_mutex_timedlock did not return ETIMEDOUT"); - res = 1; - } - r = pthread_rwlock_timedrdlock (&rw1, &t); - if (r != ETIMEDOUT) - { - puts ("pthread_rwlock_timedrdlock did not return ETIMEDOUT"); - res = 1; - } - r = pthread_rwlock_timedwrlock (&rw2, &t); - if (r != ETIMEDOUT) - { - puts ("pthread_rwlock_timedwrlock did not return ETIMEDOUT"); - res = 1; - } - return (void *) res; + TEST_COMPARE (pthread_mutex_timedlock (&m1, &t), ETIMEDOUT); + TEST_COMPARE (pthread_rwlock_timedrdlock (&rw1, &t), ETIMEDOUT); + TEST_COMPARE (pthread_rwlock_timedwrlock (&rw2, &t), ETIMEDOUT); + return NULL; } static int do_test (void) { - int res = 0; - int r; struct timespec t = { -2, 0 }; - pthread_t pth; sem_init (&sem, 0, 0); - r = sem_timedwait (&sem, &t); - if (r != -1 || errno != ETIMEDOUT) - { - puts ("sem_timedwait did not fail with ETIMEDOUT"); - res = 1; - } - - pthread_mutex_lock (&m1); - pthread_rwlock_wrlock (&rw1); - pthread_rwlock_rdlock (&rw2); - pthread_mutex_lock (&m2); - if (pthread_create (&pth, 0, th, 0) != 0) - { - puts ("cannot create thread"); - return 1; - } - r = pthread_cond_timedwait (&c, &m2, &t); - if (r != ETIMEDOUT) - { - puts ("pthread_cond_timedwait did not return ETIMEDOUT"); - res = 1; - } - void *thres; - pthread_join (pth, &thres); - return res | (thres != NULL); + TEST_COMPARE (sem_timedwait (&sem, &t), -1); + TEST_COMPARE (errno, ETIMEDOUT); + + xpthread_mutex_lock (&m1); + xpthread_rwlock_wrlock (&rw1); + xpthread_rwlock_rdlock (&rw2); + xpthread_mutex_lock (&m2); + pthread_t pth = xpthread_create (0, th, 0); + TEST_COMPARE (pthread_cond_timedwait (&c, &m2, &t), ETIMEDOUT); + xpthread_join (pth); + return 0; } - -#define TEST_FUNCTION do_test () -#include "../test-skeleton.c" +#include -- cgit v1.1