[v2,1/4] nptl: Convert tst-join3 to use libsupport
Commit Message
* nptl/tst-join3.c: Use libsupport.
---
ChangeLog | 4 ++-
nptl/tst-join3.c | 86 +++++++++++--------------------------------------
2 files changed, 24 insertions(+), 66 deletions(-)
Comments
On 18/09/2019 05:30, Mike Crowe wrote:
> * nptl/tst-join3.c: Use libsupport.
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> ChangeLog | 4 ++-
> nptl/tst-join3.c | 86 +++++++++++--------------------------------------
> 2 files changed, 24 insertions(+), 66 deletions(-)
>
> diff --git a/ChangeLog b/ChangeLog
> index adc93a7..d7943ff 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1,3 +1,7 @@
> +2019-09-18 Mike Crowe <mac@mcrowe.com>
> +
> + * nptl/tst-join3.c: Use libsupport.
> +
> 2019-09-18 Stefan Liebler <stli@linux.ibm.com>
>
> * elf/tst-pldd.c (do_test): Add UNSUPPORTED check.
> diff --git a/nptl/tst-join3.c b/nptl/tst-join3.c
> index d8785c5..a4ae459 100644
> --- a/nptl/tst-join3.c
> +++ b/nptl/tst-join3.c
> @@ -22,6 +22,10 @@
> #include <stdlib.h>
> #include <string.h>
> #include <sys/time.h>
> +#include <support/check.h>
> +#include <support/timespec.h>
> +#include <support/xthread.h>
> +#include <support/xtime.h>
>
>
> static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
> @@ -30,11 +34,7 @@ static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
> static void *
> tf (void *arg)
> {
> - if (pthread_mutex_lock (&lock) != 0)
> - {
> - puts ("child: mutex_lock failed");
> - return NULL;
> - }
> + xpthread_mutex_lock (&lock);
>
> return (void *) 42l;
> }
Ok.
> @@ -43,80 +43,34 @@ tf (void *arg)
> static int
> do_test (void)
> {
> - pthread_t th;
> -
> - if (pthread_mutex_lock (&lock) != 0)
> - {
> - puts ("mutex_lock failed");
> - exit (1);
> - }
> -
> - if (pthread_create (&th, NULL, tf, NULL) != 0)
> - {
> - puts ("mutex_create failed");
> - exit (1);
> - }
> + xpthread_mutex_lock (&lock);
> + pthread_t th = xpthread_create (NULL, tf, NULL);
>
Ok.
> void *status;
> - struct timespec ts;
> - struct timeval tv;
> - (void) gettimeofday (&tv, NULL);
> - TIMEVAL_TO_TIMESPEC (&tv, &ts);
> - ts.tv_nsec += 200000000;
> - if (ts.tv_nsec >= 1000000000)
> - {
> - ts.tv_nsec -= 1000000000;
> - ++ts.tv_sec;
> - }
> - int val = pthread_timedjoin_np (th, &status, &ts);
> - if (val == 0)
> - {
> - puts ("1st timedjoin succeeded");
> - exit (1);
> - }
> - else if (val != ETIMEDOUT)
> - {
> - puts ("1st timedjoin didn't return ETIMEDOUT");
> - exit (1);
> - }
> + struct timespec timeout = timespec_add (xclock_now (CLOCK_REALTIME),
> + make_timespec (0, 200000000));
Ok.
>
> - if (pthread_mutex_unlock (&lock) != 0)
> - {
> - puts ("mutex_unlock failed");
> - exit (1);
> - }
> + int val = pthread_timedjoin_np (th, &status, &timeout);
> + TEST_COMPARE (val, ETIMEDOUT);
> +
> + xpthread_mutex_unlock (&lock);
>
> while (1)
> {
> - (void) gettimeofday (&tv, NULL);
> - TIMEVAL_TO_TIMESPEC (&tv, &ts);
> - ts.tv_nsec += 200000000;
> - if (ts.tv_nsec >= 1000000000)
> - {
> - ts.tv_nsec -= 1000000000;
> - ++ts.tv_sec;
> - }
> -
> - val = pthread_timedjoin_np (th, &status, &ts);
> + timeout = timespec_add (xclock_now (CLOCK_REALTIME),
> + make_timespec (0, 200000000));
> +
> + val = pthread_timedjoin_np (th, &status, &timeout);
> if (val == 0)
> break;
>
Ok.
> - if (val != ETIMEDOUT)
> - {
> - printf ("timedjoin returned %s (%d), expected only 0 or ETIMEDOUT\n",
> - strerror (val), val);
> - exit (1);
> - }
> + TEST_COMPARE (val, ETIMEDOUT);
Ok.
> }
>
> if (status != (void *) 42l)
> - {
> - printf ("return value %p, expected %p\n", status, (void *) 42l);
> - exit (1);
> - }
> + FAIL_EXIT1 ("return value %p, expected %p\n", status, (void *) 42l);
>
> return 0;
> }>
> -#define TEST_FUNCTION do_test ()
> -#include "../test-skeleton.c"
> +#include <support/test-driver.c>
>
Ok.
@@ -1,3 +1,7 @@
+2019-09-18 Mike Crowe <mac@mcrowe.com>
+
+ * nptl/tst-join3.c: Use libsupport.
+
2019-09-18 Stefan Liebler <stli@linux.ibm.com>
* elf/tst-pldd.c (do_test): Add UNSUPPORTED check.
@@ -22,6 +22,10 @@
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
+#include <support/check.h>
+#include <support/timespec.h>
+#include <support/xthread.h>
+#include <support/xtime.h>
static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
@@ -30,11 +34,7 @@ static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
static void *
tf (void *arg)
{
- if (pthread_mutex_lock (&lock) != 0)
- {
- puts ("child: mutex_lock failed");
- return NULL;
- }
+ xpthread_mutex_lock (&lock);
return (void *) 42l;
}
@@ -43,80 +43,34 @@ tf (void *arg)
static int
do_test (void)
{
- pthread_t th;
-
- if (pthread_mutex_lock (&lock) != 0)
- {
- puts ("mutex_lock failed");
- exit (1);
- }
-
- if (pthread_create (&th, NULL, tf, NULL) != 0)
- {
- puts ("mutex_create failed");
- exit (1);
- }
+ xpthread_mutex_lock (&lock);
+ pthread_t th = xpthread_create (NULL, tf, NULL);
void *status;
- struct timespec ts;
- struct timeval tv;
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_nsec += 200000000;
- if (ts.tv_nsec >= 1000000000)
- {
- ts.tv_nsec -= 1000000000;
- ++ts.tv_sec;
- }
- int val = pthread_timedjoin_np (th, &status, &ts);
- if (val == 0)
- {
- puts ("1st timedjoin succeeded");
- exit (1);
- }
- else if (val != ETIMEDOUT)
- {
- puts ("1st timedjoin didn't return ETIMEDOUT");
- exit (1);
- }
+ struct timespec timeout = timespec_add (xclock_now (CLOCK_REALTIME),
+ make_timespec (0, 200000000));
- if (pthread_mutex_unlock (&lock) != 0)
- {
- puts ("mutex_unlock failed");
- exit (1);
- }
+ int val = pthread_timedjoin_np (th, &status, &timeout);
+ TEST_COMPARE (val, ETIMEDOUT);
+
+ xpthread_mutex_unlock (&lock);
while (1)
{
- (void) gettimeofday (&tv, NULL);
- TIMEVAL_TO_TIMESPEC (&tv, &ts);
- ts.tv_nsec += 200000000;
- if (ts.tv_nsec >= 1000000000)
- {
- ts.tv_nsec -= 1000000000;
- ++ts.tv_sec;
- }
-
- val = pthread_timedjoin_np (th, &status, &ts);
+ timeout = timespec_add (xclock_now (CLOCK_REALTIME),
+ make_timespec (0, 200000000));
+
+ val = pthread_timedjoin_np (th, &status, &timeout);
if (val == 0)
break;
- if (val != ETIMEDOUT)
- {
- printf ("timedjoin returned %s (%d), expected only 0 or ETIMEDOUT\n",
- strerror (val), val);
- exit (1);
- }
+ TEST_COMPARE (val, ETIMEDOUT);
}
if (status != (void *) 42l)
- {
- printf ("return value %p, expected %p\n", status, (void *) 42l);
- exit (1);
- }
+ FAIL_EXIT1 ("return value %p, expected %p\n", status, (void *) 42l);
return 0;
}
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>