mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-24 22:10:13 +00:00
nptl: Convert tst-sem5 & tst-sem13 to use libsupport
Checked on x86_64-linux-gnu and i686-linux-gnu. * nptl/tst-sem5.c: Remove unused headers. Add <support/check.h>. (do_test) Use libsupport test macros rather than hand-coded conditionals and error messages. Ensure that sem_init returns zero rather than not -1. Use <support/test-driver.c> rather than test-skeleton.c. * nptl/tst-sem13.c: Add <support/check.h>. (do_test) Use libsupport test macros rather than hand-coded conditionals and error messages. Use <support/test-driver.c> rather than test-skeleton.c.
This commit is contained in:
parent
d7563e6277
commit
7a773abf7c
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
||||
2019-03-25 Mike Crowe <mac@mcrowe.com>
|
||||
|
||||
* nptl/tst-sem5.c: Remove unused headers. Add <support/check.h>.
|
||||
(do_test) Use libsupport test macros rather than hand-coded
|
||||
conditionals and error messages. Ensure that sem_init returns zero
|
||||
rather than not -1. Use <support/test-driver.c> rather than
|
||||
test-skeleton.c.
|
||||
|
||||
* nptl/tst-sem13.c: Add <support/check.h>. (do_test) Use libsupport
|
||||
test macros rather than hand-coded conditionals and error messages.
|
||||
Use <support/test-driver.c> rather than test-skeleton.c.
|
||||
|
||||
2019-03-25 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/gnu/netinet/udp.h (UDP_GRO): New macro.
|
||||
|
@ -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>
|
||||
|
@ -18,10 +18,10 @@
|
||||
|
||||
#include <errno.h>
|
||||
#include <semaphore.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/time.h>
|
||||
#include <support/check.h>
|
||||
|
||||
|
||||
static int
|
||||
@ -31,23 +31,9 @@ do_test (void)
|
||||
struct timespec ts;
|
||||
struct timeval tv;
|
||||
|
||||
if (sem_init (&s, 0, 1) == -1)
|
||||
{
|
||||
puts ("sem_init failed");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (TEMP_FAILURE_RETRY (sem_wait (&s)) == -1)
|
||||
{
|
||||
puts ("sem_wait failed");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (gettimeofday (&tv, NULL) != 0)
|
||||
{
|
||||
puts ("gettimeofday failed");
|
||||
return 1;
|
||||
}
|
||||
TEST_COMPARE (sem_init (&s, 0, 1), 0);
|
||||
TEST_COMPARE (TEMP_FAILURE_RETRY (sem_wait (&s)), 0);
|
||||
TEST_COMPARE (gettimeofday (&tv, NULL), 0);
|
||||
|
||||
TIMEVAL_TO_TIMESPEC (&tv, &ts);
|
||||
|
||||
@ -60,34 +46,16 @@ do_test (void)
|
||||
}
|
||||
|
||||
errno = 0;
|
||||
if (TEMP_FAILURE_RETRY (sem_timedwait (&s, &ts)) != -1)
|
||||
{
|
||||
puts ("sem_timedwait succeeded");
|
||||
return 1;
|
||||
}
|
||||
if (errno != ETIMEDOUT)
|
||||
{
|
||||
printf ("sem_timedwait return errno = %d instead of ETIMEDOUT\n",
|
||||
errno);
|
||||
return 1;
|
||||
}
|
||||
TEST_COMPARE (TEMP_FAILURE_RETRY (sem_timedwait (&s, &ts)), -1);
|
||||
TEST_COMPARE (errno, ETIMEDOUT);
|
||||
|
||||
struct timespec ts2;
|
||||
if (clock_gettime (CLOCK_REALTIME, &ts2) != 0)
|
||||
{
|
||||
puts ("clock_gettime failed");
|
||||
return 1;
|
||||
}
|
||||
TEST_COMPARE (clock_gettime (CLOCK_REALTIME, &ts2), 0);
|
||||
|
||||
if (ts2.tv_sec < ts.tv_sec
|
||||
|| (ts2.tv_sec == ts.tv_sec && ts2.tv_nsec < ts.tv_nsec))
|
||||
{
|
||||
puts ("timeout too short");
|
||||
return 1;
|
||||
}
|
||||
TEST_VERIFY (ts2.tv_sec > ts.tv_sec
|
||||
|| (ts2.tv_sec == ts.tv_sec && ts2.tv_nsec > ts.tv_nsec));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define TEST_FUNCTION do_test ()
|
||||
#include "../test-skeleton.c"
|
||||
#include <support/test-driver.c>
|
||||
|
Loading…
Reference in New Issue
Block a user