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:
Mike Crowe 2019-03-25 09:28:18 -03:00 committed by Adhemerval Zanella
parent d7563e6277
commit 7a773abf7c
3 changed files with 32 additions and 79 deletions

View File

@ -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> 2019-03-25 Joseph Myers <joseph@codesourcery.com>
* sysdeps/gnu/netinet/udp.h (UDP_GRO): New macro. * sysdeps/gnu/netinet/udp.h (UDP_GRO): New macro.

View File

@ -4,6 +4,7 @@
#include <unistd.h> #include <unistd.h>
#include <pthread.h> #include <pthread.h>
#include <internaltypes.h> #include <internaltypes.h>
#include <support/check.h>
static int static int
@ -15,61 +16,33 @@ do_test (void)
struct new_sem ns; struct new_sem ns;
} u; } u;
if (sem_init (&u.s, 0, 0) != 0) TEST_COMPARE (sem_init (&u.s, 0, 0), 0);
{
puts ("sem_init failed");
return 1;
}
struct timespec ts = { 0, 1000000001 }; /* Invalid. */ struct timespec ts = { 0, 1000000001 }; /* Invalid. */
errno = 0; errno = 0;
if (sem_timedwait (&u.s, &ts) >= 0) TEST_VERIFY_EXIT (sem_timedwait (&u.s, &ts) < 0);
{ TEST_COMPARE (errno, EINVAL);
puts ("sem_timedwait did not fail");
return 1;
}
if (errno != EINVAL)
{
perror ("sem_timedwait did not fail with EINVAL");
return 1;
}
#if __HAVE_64B_ATOMICS #if __HAVE_64B_ATOMICS
unsigned int nwaiters = (u.ns.data >> SEM_NWAITERS_SHIFT); unsigned int nwaiters = (u.ns.data >> SEM_NWAITERS_SHIFT);
#else #else
unsigned int nwaiters = u.ns.nwaiters; unsigned int nwaiters = u.ns.nwaiters;
#endif #endif
if (nwaiters != 0) TEST_COMPARE (nwaiters, 0);
{
printf ("sem_timedwait modified nwaiters: %d\n", nwaiters);
return 1;
}
ts.tv_sec = /* Invalid. */ -2; ts.tv_sec = /* Invalid. */ -2;
ts.tv_nsec = 0; ts.tv_nsec = 0;
errno = 0; errno = 0;
if (sem_timedwait (&u.s, &ts) >= 0) TEST_VERIFY_EXIT (sem_timedwait (&u.s, &ts) < 0);
{ TEST_COMPARE (errno, ETIMEDOUT);
puts ("2nd sem_timedwait did not fail");
return 1;
}
if (errno != ETIMEDOUT)
{
perror ("2nd sem_timedwait did not fail with ETIMEDOUT");
return 1;
}
#if __HAVE_64B_ATOMICS #if __HAVE_64B_ATOMICS
nwaiters = (u.ns.data >> SEM_NWAITERS_SHIFT); nwaiters = (u.ns.data >> SEM_NWAITERS_SHIFT);
#else #else
nwaiters = u.ns.nwaiters; nwaiters = u.ns.nwaiters;
#endif #endif
if (nwaiters != 0) TEST_COMPARE (nwaiters, 0);
{
printf ("2nd sem_timedwait modified nwaiters: %d\n", nwaiters);
return 1;
}
return 0; return 0;
} }
#define TEST_FUNCTION do_test () #include <support/test-driver.c>
#include "../test-skeleton.c"

View File

@ -18,10 +18,10 @@
#include <errno.h> #include <errno.h>
#include <semaphore.h> #include <semaphore.h>
#include <stdio.h>
#include <time.h> #include <time.h>
#include <unistd.h> #include <unistd.h>
#include <sys/time.h> #include <sys/time.h>
#include <support/check.h>
static int static int
@ -31,23 +31,9 @@ do_test (void)
struct timespec ts; struct timespec ts;
struct timeval tv; struct timeval tv;
if (sem_init (&s, 0, 1) == -1) TEST_COMPARE (sem_init (&s, 0, 1), 0);
{ TEST_COMPARE (TEMP_FAILURE_RETRY (sem_wait (&s)), 0);
puts ("sem_init failed"); TEST_COMPARE (gettimeofday (&tv, NULL), 0);
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;
}
TIMEVAL_TO_TIMESPEC (&tv, &ts); TIMEVAL_TO_TIMESPEC (&tv, &ts);
@ -60,34 +46,16 @@ do_test (void)
} }
errno = 0; errno = 0;
if (TEMP_FAILURE_RETRY (sem_timedwait (&s, &ts)) != -1) TEST_COMPARE (TEMP_FAILURE_RETRY (sem_timedwait (&s, &ts)), -1);
{ TEST_COMPARE (errno, ETIMEDOUT);
puts ("sem_timedwait succeeded");
return 1;
}
if (errno != ETIMEDOUT)
{
printf ("sem_timedwait return errno = %d instead of ETIMEDOUT\n",
errno);
return 1;
}
struct timespec ts2; struct timespec ts2;
if (clock_gettime (CLOCK_REALTIME, &ts2) != 0) TEST_COMPARE (clock_gettime (CLOCK_REALTIME, &ts2), 0);
{
puts ("clock_gettime failed");
return 1;
}
if (ts2.tv_sec < ts.tv_sec TEST_VERIFY (ts2.tv_sec > ts.tv_sec
|| (ts2.tv_sec == ts.tv_sec && ts2.tv_nsec < ts.tv_nsec)) || (ts2.tv_sec == ts.tv_sec && ts2.tv_nsec > ts.tv_nsec));
{
puts ("timeout too short");
return 1;
}
return 0; return 0;
} }
#define TEST_FUNCTION do_test () #include <support/test-driver.c>
#include "../test-skeleton.c"