diff options
author | Yu Chien Peter Lin <peterlin@andestech.com> | 2022-09-30 20:19:51 +0800 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2022-10-03 11:19:36 -0300 |
commit | 365b3af67ecaf176b2e2678afe903bebce598fd7 (patch) | |
tree | 01bd8fd620501e0f915e214875cdeea0c82c4a8a | |
parent | 3bea50ccbc925d4fc5f85ec402b6154cbe770b71 (diff) | |
download | glibc-365b3af67ecaf176b2e2678afe903bebce598fd7.zip glibc-365b3af67ecaf176b2e2678afe903bebce598fd7.tar.gz glibc-365b3af67ecaf176b2e2678afe903bebce598fd7.tar.bz2 |
nptl: Convert tst-setuid2 to test-driver
Use <support/test-driver.c> and replace pthread calls to its xpthread
equivalents.
Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
-rw-r--r-- | nptl/tst-setuid2.c | 52 |
1 files changed, 15 insertions, 37 deletions
diff --git a/nptl/tst-setuid2.c b/nptl/tst-setuid2.c index aff3b1a..9b77999 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> |