aboutsummaryrefslogtreecommitdiff
path: root/lib/mlibc/tests/posix/pthread_schedparam.c
blob: dde70fb820dee0ff3f6dc269b8dcc207ec7b52d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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, &param);
	assert(policy == SCHED_OTHER);
	assert(!ret);

	param.sched_priority = 10;

	ret = pthread_setschedparam(pthread_self(), SCHED_FIFO, &param);
	assert(!ret || ret == EPERM);

	if(ret == EPERM) {
		exit(0);
	}

	param.sched_priority = 0xDEADBEEF;

	ret = pthread_getschedparam(pthread_self(), &policy, &param);
	assert(policy == SCHED_FIFO);
	assert(param.sched_priority == 10);
	assert(!ret);
}