From 46f489da3a775e7849f6de091e6a0a43ab3bbe87 Mon Sep 17 00:00:00 2001 From: Gaetan Perrot Date: Wed, 3 Apr 2024 00:39:34 +0900 Subject: [PATCH] tests: posix: add tests for pthread_setschedprio() Add tests for pthread_setschedprio() Signed-off-by: Gaetan Perrot --- tests/posix/common/src/pthread.c | 26 ++++++++++++++++++++++++++ tests/posix/headers/src/pthread_h.c | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/tests/posix/common/src/pthread.c b/tests/posix/common/src/pthread.c index f3facdf8686..109bcb4e5c8 100644 --- a/tests/posix/common/src/pthread.c +++ b/tests/posix/common/src/pthread.c @@ -539,6 +539,32 @@ ZTEST(pthread, test_pthread_testcancel) zassert_false(testcancel_failed); } +static void *test_pthread_setschedprio_fn(void *arg) +{ + int policy; + int prio = 0; + struct sched_param param; + pthread_t self = pthread_self(); + + zassert_equal(pthread_setschedprio(self, PRIO_INVALID), EINVAL, "EINVAL was expected"); + zassert_equal(pthread_setschedprio(PTHREAD_INVALID, prio), ESRCH, "ESRCH was expected"); + + zassert_ok(pthread_setschedprio(self, prio)); + param.sched_priority = ~prio; + zassert_ok(pthread_getschedparam(self, &policy, ¶m)); + zassert_equal(param.sched_priority, prio, "Priority unchanged"); + + return NULL; +} + +ZTEST(pthread, test_pthread_setschedprio) +{ + pthread_t th; + + zassert_ok(pthread_create(&th, NULL, test_pthread_setschedprio_fn, NULL)); + zassert_ok(pthread_join(th, NULL)); +} + static void before(void *arg) { ARG_UNUSED(arg); diff --git a/tests/posix/headers/src/pthread_h.c b/tests/posix/headers/src/pthread_h.c index 9d5f0336e40..fdf9b66c1ae 100644 --- a/tests/posix/headers/src/pthread_h.c +++ b/tests/posix/headers/src/pthread_h.c @@ -151,7 +151,7 @@ ZTEST(posix_headers, test_pthread_h) zassert_not_null(pthread_setcanceltype); zassert_not_null(pthread_setconcurrency); zassert_not_null(pthread_setschedparam); - /* zassert_not_null(pthread_setschedprio); */ /* not implemented */ + zassert_not_null(pthread_setschedprio); zassert_not_null(pthread_setspecific); zassert_not_null(pthread_spin_destroy); zassert_not_null(pthread_spin_init);