summaryrefslogtreecommitdiff
path: root/tests/mutex1r.c
diff options
context:
space:
mode:
authorrpj <rpj>2001-05-31 02:05:25 +0000
committerrpj <rpj>2001-05-31 02:05:25 +0000
commita8744086b476e4007c1d8fc0fae84ecfcade99ba (patch)
tree69bd3bd925233e00d960f3de5a5f3953db235da7 /tests/mutex1r.c
parente121b938c9f012958196a3141f04a3fd4f58bdb9 (diff)
New test.
Diffstat (limited to 'tests/mutex1r.c')
-rw-r--r--tests/mutex1r.c42
1 files changed, 42 insertions, 0 deletions
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;
+}