[v2,2/2] nptl: Convert tst-setuid2 to test-driver

Message ID 20220930121951.30671-2-peterlin@andestech.com (mailing list archive)
State Committed
Commit 365b3af67ecaf176b2e2678afe903bebce598fd7
Headers
Series [v2,1/2] support: Add xpthread_cond_signal wrapper |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent
dj/TryBot-32bit success Build for i686

Commit Message

Yu-Chien Peter Lin Sept. 30, 2022, 12:19 p.m. UTC
  Use <support/test-driver.c> and replace pthread calls to its xpthread
equivalents.

Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
---
 nptl/tst-setuid2.c | 52 +++++++++++++---------------------------------
 1 file changed, 15 insertions(+), 37 deletions(-)
  

Comments

Adhemerval Zanella Netto Sept. 30, 2022, 2:10 p.m. UTC | #1
On 30/09/22 09:19, Yu Chien Peter Lin wrote:
> Use <support/test-driver.c> and replace pthread calls to its xpthread
> equivalents.
> 
> Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>

LGTM, thanks.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

> ---
>  nptl/tst-setuid2.c | 52 +++++++++++++---------------------------------
>  1 file changed, 15 insertions(+), 37 deletions(-)
> 
> diff --git a/nptl/tst-setuid2.c b/nptl/tst-setuid2.c
> index aff3b1a97d..9b7799991c 100644
> --- a/nptl/tst-setuid2.c
> +++ b/nptl/tst-setuid2.c
> @@ -20,6 +20,7 @@
>  #include <signal.h>
>  #include <stdbool.h>
>  #include <stdio.h>
> +#include <support/xthread.h>
>  #include <sys/syscall.h>
>  #include <unistd.h>
>  
> @@ -36,30 +37,21 @@ static pthread_cond_t cond_recv;
>  static void *
>  thread_func (void *ctx __attribute__ ((unused)))
>  {
> -  int ret = pthread_mutex_lock (&mutex);
> -  if (ret != 0)
> -    FAIL ("pthread_mutex_lock (thread): %d", ret);
> -
> +  xpthread_mutex_lock (&mutex);
>    while (true)
>      {
>        if (func_sent != NULL)
>  	{
>  	  void (*func) (void) = func_sent;
> -	  ret = pthread_mutex_unlock (&mutex);
> -	  if (ret != 0)
> -	    FAIL ("pthread_mutex_unlock (thread): %d", ret);
> +	  xpthread_mutex_unlock (&mutex);
> +
>  	  func ();
> -	  ret = pthread_mutex_lock (&mutex);
> -	  if (ret != 0)
> -	    FAIL ("pthread_mutex_lock (thread): %d", ret);
> +
> +	  xpthread_mutex_lock (&mutex);
>  	  func_sent = NULL;
> -	  ret = pthread_cond_signal (&cond_recv);
> -	  if (ret != 0)
> -	    FAIL ("pthread_cond_signal (recv): %d", ret);
> +	  xpthread_cond_signal (&cond_recv);
>  	}
> -      ret = pthread_cond_wait (&cond_send, &mutex);
> -      if (ret != 0)
> -	FAIL ("pthread_cond_wait (send): %d", ret);
> +      xpthread_cond_wait (&cond_send, &mutex);
>      }
>    return NULL;
>  }
> @@ -67,31 +59,18 @@ thread_func (void *ctx __attribute__ ((unused)))
>  static void
>  run_on_thread (void (*func) (void))
>  {
> -  int ret = pthread_mutex_lock (&mutex);
> -  if (ret != 0)
> -    FAIL ("pthread_mutex_lock (%s): %d", __func__, ret);
> +  xpthread_mutex_lock (&mutex);
>    func_sent = func;
> -  ret = pthread_mutex_unlock (&mutex);
> -  if (ret != 0)
> -    FAIL ("pthread_mutex_unlock (%s): %d", __func__, ret);
> +  xpthread_mutex_unlock (&mutex);
>  
> -  ret = pthread_cond_signal (&cond_send);
> -  if (ret != 0)
> -    FAIL ("pthread_mutex_lock (%s): %d", __func__, ret);
> -
> -  ret = pthread_mutex_lock (&mutex);
> -  if (ret != 0)
> -    FAIL ("pthread_mutex_lock (%s): %d", __func__, ret);
> +  xpthread_cond_signal (&cond_send);
>  
> +  xpthread_mutex_lock (&mutex);
>    while (func_sent != NULL)
>      {
> -      ret = pthread_cond_wait (&cond_recv, &mutex);
> -      if (ret != 0)
> -	FAIL ("pthread_mutex_wait (%s): %d", __func__, ret);
> +      xpthread_cond_wait (&cond_recv, &mutex);
>      }
> -  ret = pthread_mutex_unlock (&mutex);
> -  if (ret != 0)
> -    FAIL ("pthread_mutex_unlock (%s): %d", __func__, ret);
> +  xpthread_mutex_unlock (&mutex);
>  }
>  
>  static void
> @@ -141,5 +120,4 @@ do_test (void)
>    return 0;
>  }
>  
> -#define TEST_FUNCTION do_test ()
> -#include "../test-skeleton.c"
> +#include <support/test-driver.c>
  
Sunil Pandey Jan. 11, 2025, 10:44 p.m. UTC | #2
On Fri, Sep 30, 2022 at 7:11 AM Adhemerval Zanella Netto via Libc-alpha <
libc-alpha@sourceware.org> wrote:

>
>
> On 30/09/22 09:19, Yu Chien Peter Lin wrote:
> > Use <support/test-driver.c> and replace pthread calls to its xpthread
> > equivalents.
> >
> > Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
>
> LGTM, thanks.
>
> Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
>
> > ---
> >  nptl/tst-setuid2.c | 52 +++++++++++++---------------------------------
> >  1 file changed, 15 insertions(+), 37 deletions(-)
> >
> > diff --git a/nptl/tst-setuid2.c b/nptl/tst-setuid2.c
> > index aff3b1a97d..9b7799991c 100644
> > --- a/nptl/tst-setuid2.c
> > +++ b/nptl/tst-setuid2.c
> > @@ -20,6 +20,7 @@
> >  #include <signal.h>
> >  #include <stdbool.h>
> >  #include <stdio.h>
> > +#include <support/xthread.h>
> >  #include <sys/syscall.h>
> >  #include <unistd.h>
> >
> > @@ -36,30 +37,21 @@ static pthread_cond_t cond_recv;
> >  static void *
> >  thread_func (void *ctx __attribute__ ((unused)))
> >  {
> > -  int ret = pthread_mutex_lock (&mutex);
> > -  if (ret != 0)
> > -    FAIL ("pthread_mutex_lock (thread): %d", ret);
> > -
> > +  xpthread_mutex_lock (&mutex);
> >    while (true)
> >      {
> >        if (func_sent != NULL)
> >       {
> >         void (*func) (void) = func_sent;
> > -       ret = pthread_mutex_unlock (&mutex);
> > -       if (ret != 0)
> > -         FAIL ("pthread_mutex_unlock (thread): %d", ret);
> > +       xpthread_mutex_unlock (&mutex);
> > +
> >         func ();
> > -       ret = pthread_mutex_lock (&mutex);
> > -       if (ret != 0)
> > -         FAIL ("pthread_mutex_lock (thread): %d", ret);
> > +
> > +       xpthread_mutex_lock (&mutex);
> >         func_sent = NULL;
> > -       ret = pthread_cond_signal (&cond_recv);
> > -       if (ret != 0)
> > -         FAIL ("pthread_cond_signal (recv): %d", ret);
> > +       xpthread_cond_signal (&cond_recv);
> >       }
> > -      ret = pthread_cond_wait (&cond_send, &mutex);
> > -      if (ret != 0)
> > -     FAIL ("pthread_cond_wait (send): %d", ret);
> > +      xpthread_cond_wait (&cond_send, &mutex);
> >      }
> >    return NULL;
> >  }
> > @@ -67,31 +59,18 @@ thread_func (void *ctx __attribute__ ((unused)))
> >  static void
> >  run_on_thread (void (*func) (void))
> >  {
> > -  int ret = pthread_mutex_lock (&mutex);
> > -  if (ret != 0)
> > -    FAIL ("pthread_mutex_lock (%s): %d", __func__, ret);
> > +  xpthread_mutex_lock (&mutex);
> >    func_sent = func;
> > -  ret = pthread_mutex_unlock (&mutex);
> > -  if (ret != 0)
> > -    FAIL ("pthread_mutex_unlock (%s): %d", __func__, ret);
> > +  xpthread_mutex_unlock (&mutex);
> >
> > -  ret = pthread_cond_signal (&cond_send);
> > -  if (ret != 0)
> > -    FAIL ("pthread_mutex_lock (%s): %d", __func__, ret);
> > -
> > -  ret = pthread_mutex_lock (&mutex);
> > -  if (ret != 0)
> > -    FAIL ("pthread_mutex_lock (%s): %d", __func__, ret);
> > +  xpthread_cond_signal (&cond_send);
> >
> > +  xpthread_mutex_lock (&mutex);
> >    while (func_sent != NULL)
> >      {
> > -      ret = pthread_cond_wait (&cond_recv, &mutex);
> > -      if (ret != 0)
> > -     FAIL ("pthread_mutex_wait (%s): %d", __func__, ret);
> > +      xpthread_cond_wait (&cond_recv, &mutex);
> >      }
> > -  ret = pthread_mutex_unlock (&mutex);
> > -  if (ret != 0)
> > -    FAIL ("pthread_mutex_unlock (%s): %d", __func__, ret);
> > +  xpthread_mutex_unlock (&mutex);
> >  }
> >
> >  static void
> > @@ -141,5 +120,4 @@ do_test (void)
> >    return 0;
> >  }
> >
> > -#define TEST_FUNCTION do_test ()
> > -#include "../test-skeleton.c"
> > +#include <support/test-driver.c>
>

I would like to backport this patch to release branches. Without this
patch, I get following testing errors in 2.36 and earlier branches.

In file included from ../test-skeleton.c:45:0,
                 from tst-setuid2.c:145:
../support/check.h:29:0: error: "FAIL" redefined [-Werror]
 #define FAIL(...) \

tst-setuid2.c:33:0: note: this is the location of the previous definition
 #define FAIL(fmt, ...) \

cc1: all warnings being treated as errors

Any comments or objections?

--Sunil
  

Patch

diff --git a/nptl/tst-setuid2.c b/nptl/tst-setuid2.c
index aff3b1a97d..9b7799991c 100644
--- a/nptl/tst-setuid2.c
+++ b/nptl/tst-setuid2.c
@@ -20,6 +20,7 @@ 
 #include <signal.h>
 #include <stdbool.h>
 #include <stdio.h>
+#include <support/xthread.h>
 #include <sys/syscall.h>
 #include <unistd.h>
 
@@ -36,30 +37,21 @@  static pthread_cond_t cond_recv;
 static void *
 thread_func (void *ctx __attribute__ ((unused)))
 {
-  int ret = pthread_mutex_lock (&mutex);
-  if (ret != 0)
-    FAIL ("pthread_mutex_lock (thread): %d", ret);
-
+  xpthread_mutex_lock (&mutex);
   while (true)
     {
       if (func_sent != NULL)
 	{
 	  void (*func) (void) = func_sent;
-	  ret = pthread_mutex_unlock (&mutex);
-	  if (ret != 0)
-	    FAIL ("pthread_mutex_unlock (thread): %d", ret);
+	  xpthread_mutex_unlock (&mutex);
+
 	  func ();
-	  ret = pthread_mutex_lock (&mutex);
-	  if (ret != 0)
-	    FAIL ("pthread_mutex_lock (thread): %d", ret);
+
+	  xpthread_mutex_lock (&mutex);
 	  func_sent = NULL;
-	  ret = pthread_cond_signal (&cond_recv);
-	  if (ret != 0)
-	    FAIL ("pthread_cond_signal (recv): %d", ret);
+	  xpthread_cond_signal (&cond_recv);
 	}
-      ret = pthread_cond_wait (&cond_send, &mutex);
-      if (ret != 0)
-	FAIL ("pthread_cond_wait (send): %d", ret);
+      xpthread_cond_wait (&cond_send, &mutex);
     }
   return NULL;
 }
@@ -67,31 +59,18 @@  thread_func (void *ctx __attribute__ ((unused)))
 static void
 run_on_thread (void (*func) (void))
 {
-  int ret = pthread_mutex_lock (&mutex);
-  if (ret != 0)
-    FAIL ("pthread_mutex_lock (%s): %d", __func__, ret);
+  xpthread_mutex_lock (&mutex);
   func_sent = func;
-  ret = pthread_mutex_unlock (&mutex);
-  if (ret != 0)
-    FAIL ("pthread_mutex_unlock (%s): %d", __func__, ret);
+  xpthread_mutex_unlock (&mutex);
 
-  ret = pthread_cond_signal (&cond_send);
-  if (ret != 0)
-    FAIL ("pthread_mutex_lock (%s): %d", __func__, ret);
-
-  ret = pthread_mutex_lock (&mutex);
-  if (ret != 0)
-    FAIL ("pthread_mutex_lock (%s): %d", __func__, ret);
+  xpthread_cond_signal (&cond_send);
 
+  xpthread_mutex_lock (&mutex);
   while (func_sent != NULL)
     {
-      ret = pthread_cond_wait (&cond_recv, &mutex);
-      if (ret != 0)
-	FAIL ("pthread_mutex_wait (%s): %d", __func__, ret);
+      xpthread_cond_wait (&cond_recv, &mutex);
     }
-  ret = pthread_mutex_unlock (&mutex);
-  if (ret != 0)
-    FAIL ("pthread_mutex_unlock (%s): %d", __func__, ret);
+  xpthread_mutex_unlock (&mutex);
 }
 
 static void
@@ -141,5 +120,4 @@  do_test (void)
   return 0;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>