lib: posix: mutex: implement pthread_mutexattr_setprotocol

Implement and test `pthread_mutexattr_setprotocol()`.

Signed-off-by: Yong Cong Sin <ycsin@meta.com>
This commit is contained in:
Yong Cong Sin 2024-06-17 14:59:07 +08:00 committed by Carles Cufí
commit 0c4870a0f0
4 changed files with 30 additions and 1 deletions

View file

@ -63,6 +63,10 @@ static void test_mutex_common(int type, void *(*entry)(void *arg))
zassert_not_ok(pthread_mutexattr_getprotocol(NULL, &protocol));
zassert_not_ok(pthread_mutexattr_getprotocol(&mut_attr, NULL));
zassert_not_ok(pthread_mutexattr_getprotocol(NULL, NULL));
zassert_not_ok(pthread_mutexattr_setprotocol(&mut_attr, PTHREAD_PRIO_INHERIT));
zassert_not_ok(pthread_mutexattr_setprotocol(&mut_attr, PTHREAD_PRIO_PROTECT));
zassert_ok(pthread_mutexattr_setprotocol(&mut_attr, PTHREAD_PRIO_NONE));
zassert_ok(pthread_mutexattr_getprotocol(&mut_attr, &protocol),
"reading mutex protocol is failed");
zassert_ok(pthread_mutexattr_destroy(&mut_attr));

View file

@ -128,7 +128,7 @@ ZTEST(posix_headers, test_pthread_h)
zassert_not_null(pthread_mutexattr_gettype);
zassert_not_null(pthread_mutexattr_init);
/* zassert_not_null(pthread_mutexattr_setprioceiling); */ /* not implemented */
/* zassert_not_null(pthread_mutexattr_setprotocol); */ /* not implemented */
zassert_not_null(pthread_mutexattr_setprotocol);
/* zassert_not_null(pthread_mutexattr_setpshared); */ /* not implemented */
/* zassert_not_null(pthread_mutexattr_setrobust); */ /* not implemented */
zassert_not_null(pthread_mutexattr_settype);