diff options
Diffstat (limited to 'lib/mlibc/tests/posix/pthread_schedparam.c')
-rw-r--r-- | lib/mlibc/tests/posix/pthread_schedparam.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/mlibc/tests/posix/pthread_schedparam.c b/lib/mlibc/tests/posix/pthread_schedparam.c new file mode 100644 index 0000000..dde70fb --- /dev/null +++ b/lib/mlibc/tests/posix/pthread_schedparam.c @@ -0,0 +1,32 @@ +#include <assert.h> +#include <errno.h> +#include <pthread.h> +#include <stdlib.h> + +int main() { + struct sched_param param = { + .sched_priority = 100, + }; + + int policy = 0xDEADBEEF; + + int ret = pthread_getschedparam(pthread_self(), &policy, ¶m); + assert(policy == SCHED_OTHER); + assert(!ret); + + param.sched_priority = 10; + + ret = pthread_setschedparam(pthread_self(), SCHED_FIFO, ¶m); + assert(!ret || ret == EPERM); + + if(ret == EPERM) { + exit(0); + } + + param.sched_priority = 0xDEADBEEF; + + ret = pthread_getschedparam(pthread_self(), &policy, ¶m); + assert(policy == SCHED_FIFO); + assert(param.sched_priority == 10); + assert(!ret); +} |