From ad95b348165deb1b9d46198ceeacf3319a03a37f Mon Sep 17 00:00:00 2001 From: Gaetan Perrot Date: Fri, 2 Feb 2024 22:25:42 +0900 Subject: [PATCH] posix: Implement tests for set and get inheritsched APIs for pthread attr Add tests for `pthread_attr_setinheritsched()` and `pthread_attr_getinheritsched()` signed-off-by: Gaetan Perrot --- tests/posix/common/src/pthread_attr.c | 42 +++++++++++++++++++++++++++ tests/posix/headers/src/pthread_h.c | 8 ++--- 2 files changed, 46 insertions(+), 4 deletions(-) diff --git a/tests/posix/common/src/pthread_attr.c b/tests/posix/common/src/pthread_attr.c index 99568a85298ea33..6952a8bf556bd8b 100644 --- a/tests/posix/common/src/pthread_attr.c +++ b/tests/posix/common/src/pthread_attr.c @@ -439,6 +439,48 @@ ZTEST(pthread_attr, test_pthread_attr_setstacksize) } } +ZTEST(pthread_attr, test_pthread_attr_getinheritsched) +{ + int inheritsched = BIOS_FOOD; + + /* degenerate cases */ + { + if (false) { + /* undefined behaviour */ + zassert_equal(pthread_attr_getinheritsched(NULL, NULL), EINVAL); + zassert_equal(pthread_attr_getinheritsched(NULL, &inheritsched), EINVAL); + zassert_equal(pthread_attr_getinheritsched(&uninit_attr, &inheritsched), + EINVAL); + } + zassert_equal(pthread_attr_getinheritsched(&attr, NULL), EINVAL); + } + + zassert_ok(pthread_attr_getinheritsched(&attr, &inheritsched)); + zassert_equal(inheritsched, PTHREAD_INHERIT_SCHED); +} + +ZTEST(pthread_attr, test_pthread_attr_setinheritsched) +{ + int inheritsched = BIOS_FOOD; + + /* degenerate cases */ + { + if (false) { + /* undefined behaviour */ + zassert_equal(pthread_attr_setinheritsched(NULL, PTHREAD_EXPLICIT_SCHED), + EINVAL); + zassert_equal(pthread_attr_setinheritsched(NULL, inheritsched), EINVAL); + zassert_equal(pthread_attr_setinheritsched((pthread_attr_t *)&uninit_attr, + inheritsched), EINVAL); + } + zassert_equal(pthread_attr_setinheritsched(&attr, 3), EINVAL); + } + + zassert_ok(pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED)); + zassert_ok(pthread_attr_getinheritsched(&attr, &inheritsched)); + zassert_equal(inheritsched, PTHREAD_EXPLICIT_SCHED); +} + ZTEST(pthread_attr, test_pthread_attr_large_stacksize) { size_t actual_size; diff --git a/tests/posix/headers/src/pthread_h.c b/tests/posix/headers/src/pthread_h.c index 73467d14bf99d62..51dfe4d10c11b53 100644 --- a/tests/posix/headers/src/pthread_h.c +++ b/tests/posix/headers/src/pthread_h.c @@ -34,8 +34,8 @@ ZTEST(posix_headers, test_pthread_h) zassert_not_equal(-1, PTHREAD_CREATE_DETACHED); zassert_not_equal(-1, PTHREAD_CREATE_JOINABLE); - /* zassert_not_equal(-1, PTHREAD_EXPLICIT_SCHED); */ /* not implemented */ - /* zassert_not_equal(-1, PTHREAD_INHERIT_SCHED); */ /* not implemented */ + zassert_not_equal(-1, PTHREAD_EXPLICIT_SCHED); + zassert_not_equal(-1, PTHREAD_INHERIT_SCHED); zassert_not_equal(-1, PTHREAD_MUTEX_DEFAULT); zassert_not_equal(-1, PTHREAD_MUTEX_ERRORCHECK); @@ -65,7 +65,7 @@ ZTEST(posix_headers, test_pthread_h) zassert_not_null(pthread_attr_destroy); zassert_not_null(pthread_attr_getdetachstate); zassert_not_null(pthread_attr_getguardsize); - /* zassert_not_null(pthread_attr_getinheritsched); */ /* not implemented */ + zassert_not_null(pthread_attr_getinheritsched); zassert_not_null(pthread_attr_getschedparam); zassert_not_null(pthread_attr_getschedpolicy); /* zassert_not_null(pthread_attr_getscope); */ /* not implemented */ @@ -74,7 +74,7 @@ ZTEST(posix_headers, test_pthread_h) zassert_not_null(pthread_attr_init); zassert_not_null(pthread_attr_setdetachstate); zassert_not_null(pthread_attr_setguardsize); - /* zassert_not_null(pthread_attr_setinheritsched); */ /* not implemented */ + zassert_not_null(pthread_attr_setinheritsched); zassert_not_null(pthread_attr_setschedparam); zassert_not_null(pthread_attr_setschedpolicy); /* zassert_not_null(pthread_attr_setscope); */ /* not implemented */