diff options
Diffstat (limited to 'nptl/tst-sem13.c')
-rw-r--r-- | nptl/tst-sem13.c | 47 |
1 files changed, 10 insertions, 37 deletions
diff --git a/nptl/tst-sem13.c b/nptl/tst-sem13.c index 1560e91443..28d37ed0cb 100644 --- a/nptl/tst-sem13.c +++ b/nptl/tst-sem13.c @@ -4,6 +4,7 @@ #include <unistd.h> #include <pthread.h> #include <internaltypes.h> +#include <support/check.h> static int @@ -15,61 +16,33 @@ do_test (void) struct new_sem ns; } u; - if (sem_init (&u.s, 0, 0) != 0) - { - puts ("sem_init failed"); - return 1; - } + TEST_COMPARE (sem_init (&u.s, 0, 0), 0); struct timespec ts = { 0, 1000000001 }; /* Invalid. */ errno = 0; - if (sem_timedwait (&u.s, &ts) >= 0) - { - puts ("sem_timedwait did not fail"); - return 1; - } - if (errno != EINVAL) - { - perror ("sem_timedwait did not fail with EINVAL"); - return 1; - } + TEST_VERIFY_EXIT (sem_timedwait (&u.s, &ts) < 0); + TEST_COMPARE (errno, EINVAL); + #if __HAVE_64B_ATOMICS unsigned int nwaiters = (u.ns.data >> SEM_NWAITERS_SHIFT); #else unsigned int nwaiters = u.ns.nwaiters; #endif - if (nwaiters != 0) - { - printf ("sem_timedwait modified nwaiters: %d\n", nwaiters); - return 1; - } + TEST_COMPARE (nwaiters, 0); ts.tv_sec = /* Invalid. */ -2; ts.tv_nsec = 0; errno = 0; - if (sem_timedwait (&u.s, &ts) >= 0) - { - puts ("2nd sem_timedwait did not fail"); - return 1; - } - if (errno != ETIMEDOUT) - { - perror ("2nd sem_timedwait did not fail with ETIMEDOUT"); - return 1; - } + TEST_VERIFY_EXIT (sem_timedwait (&u.s, &ts) < 0); + TEST_COMPARE (errno, ETIMEDOUT); #if __HAVE_64B_ATOMICS nwaiters = (u.ns.data >> SEM_NWAITERS_SHIFT); #else nwaiters = u.ns.nwaiters; #endif - if (nwaiters != 0) - { - printf ("2nd sem_timedwait modified nwaiters: %d\n", nwaiters); - return 1; - } + TEST_COMPARE (nwaiters, 0); return 0; } -#define TEST_FUNCTION do_test () -#include "../test-skeleton.c" +#include <support/test-driver.c> |