This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 2/7] nptl: Add POSIX-proposed sem_clockwait
- From: Mike Crowe <mac at mcrowe dot com>
- To: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>, libc-alpha at sourceware dot org
- Date: Sun, 10 Mar 2019 16:17:15 +0000
- Subject: Re: [PATCH 2/7] nptl: Add POSIX-proposed sem_clockwait
- References: <cover.b0c66849a87ca79889a49f2f1f2563b1a8a15d8b.1551291557.git-series.mac@mcrowe.com> <47415e51fea8d960fc993cf0e0b8db6a19511d28.1551291557.git-series.mac@mcrowe.com> <f6480de8-cfb8-62c5-2546-7dbf56a14c79@linaro.org>
On Tuesday 05 March 2019 at 10:31:33 -0300, Adhemerval Zanella wrote:
> On 27/02/2019 15:23, Mike Crowe wrote:
> > diff --git a/nptl/tst-sem5.c b/nptl/tst-sem5.c
> > index 2149ade..7f1031d 100644
> > --- a/nptl/tst-sem5.c
> > +++ b/nptl/tst-sem5.c
> > @@ -23,13 +23,15 @@
> > #include <unistd.h>
> > #include <sys/time.h>
>
> As for tst-sem13.c, I think it would be good to adapt to libsupport.
Something like this (before I make the same mistakes on the others):
Subject: [PATCH] nptl: Convert tst-sem5 to use libsupport
* 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-sem5.c | 53 ++++++++++-------------------------------------------
1 file changed, 10 insertions(+), 43 deletions(-)
diff --git a/nptl/tst-sem5.c b/nptl/tst-sem5.c
index 2149adeb12..846813243b 100644
--- a/nptl/tst-sem5.c
+++ b/nptl/tst-sem5.c
@@ -18,11 +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
do_test (void)
@@ -31,23 +30,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 +45,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>
--
2.11.0
Thanks.
Mike.