From a8744086b476e4007c1d8fc0fae84ecfcade99ba Mon Sep 17 00:00:00 2001 From: rpj Date: Thu, 31 May 2001 02:05:25 +0000 Subject: New test. --- tests/mutex1r.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 tests/mutex1r.c (limited to 'tests/mutex1r.c') diff --git a/tests/mutex1r.c b/tests/mutex1r.c new file mode 100644 index 0000000..b5131bb --- /dev/null +++ b/tests/mutex1r.c @@ -0,0 +1,42 @@ +/* + * mutex1r.c + * + * As for mutex1.c but with type set to PTHREAD_MUTEX_RECURSIVE. + * + * Create a simple mutex object, lock it, unlock it, then destroy it. + * This is the simplest test of the pthread mutex family that we can do. + * + * Depends on API functions: + * pthread_mutexattr_settype() + * pthread_mutex_init() + * pthread_mutex_destroy() + */ + +#include "test.h" + +pthread_mutex_t mutex = NULL; +pthread_mutexattr_t mxAttr; + +int +main() +{ + assert(pthread_mutexattr_init(&mxAttr) == 0); + + assert(pthread_mutexattr_settype(&mxAttr, PTHREAD_MUTEX_RECURSIVE) == 0); + + assert(mutex == NULL); + + assert(pthread_mutex_init(&mutex, &mxAttr) == 0); + + assert(mutex != NULL); + + assert(pthread_mutex_lock(&mutex) == 0); + + assert(pthread_mutex_unlock(&mutex) == 0); + + assert(pthread_mutex_destroy(&mutex) == 0); + + assert(mutex == NULL); + + return 0; +} -- cgit v1.2.3