diff options
-rw-r--r-- | tests/core_api.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/core_api.c b/tests/core_api.c index 7f7a099..33c6217 100644 --- a/tests/core_api.c +++ b/tests/core_api.c | |||
@@ -21,6 +21,7 @@ TESTCASE(set_rt_task_param_invalid_params, ALL, | |||
21 | params.cpu = 0; | 21 | params.cpu = 0; |
22 | params.period = 100; | 22 | params.period = 100; |
23 | params.phase = 0; | 23 | params.phase = 0; |
24 | params.priority = LITMUS_LOWEST_PRIORITY; | ||
24 | params.cls = RT_CLASS_HARD; | 25 | params.cls = RT_CLASS_HARD; |
25 | params.budget_policy = NO_ENFORCEMENT; | 26 | params.budget_policy = NO_ENFORCEMENT; |
26 | 27 | ||
@@ -42,6 +43,56 @@ TESTCASE(set_rt_task_param_invalid_params, ALL, | |||
42 | SYSCALL( set_rt_task_param(gettid(), ¶ms) ); | 43 | SYSCALL( set_rt_task_param(gettid(), ¶ms) ); |
43 | } | 44 | } |
44 | 45 | ||
46 | TESTCASE(reject_bad_priorities, P_FP, | ||
47 | "reject invalid priorities") | ||
48 | { | ||
49 | struct rt_task params; | ||
50 | params.cpu = 0; | ||
51 | params.exec_cost = 10; | ||
52 | params.period = 100; | ||
53 | params.phase = 0; | ||
54 | params.cls = RT_CLASS_HARD; | ||
55 | params.budget_policy = NO_ENFORCEMENT; | ||
56 | |||
57 | SYSCALL( be_migrate_to(params.cpu) ); | ||
58 | |||
59 | /* too high */ | ||
60 | params.priority = 0; | ||
61 | SYSCALL( set_rt_task_param(gettid(), ¶ms) ); | ||
62 | SYSCALL_FAILS( EINVAL, task_mode(LITMUS_RT_TASK) ); | ||
63 | |||
64 | /* too low */ | ||
65 | params.priority = LITMUS_MAX_PRIORITY; | ||
66 | SYSCALL( set_rt_task_param(gettid(), ¶ms) ); | ||
67 | SYSCALL_FAILS( EINVAL, task_mode(LITMUS_RT_TASK) ); | ||
68 | |||
69 | } | ||
70 | |||
71 | TESTCASE(accept_valid_priorities, P_FP, | ||
72 | "accept lowest and highest valid priorities") | ||
73 | { | ||
74 | struct rt_task params; | ||
75 | params.cpu = 0; | ||
76 | params.exec_cost = 10; | ||
77 | params.period = 100; | ||
78 | params.phase = 0; | ||
79 | params.cls = RT_CLASS_HARD; | ||
80 | params.budget_policy = NO_ENFORCEMENT; | ||
81 | |||
82 | SYSCALL( be_migrate_to(params.cpu) ); | ||
83 | |||
84 | /* acceptable */ | ||
85 | params.priority = LITMUS_LOWEST_PRIORITY; | ||
86 | SYSCALL( set_rt_task_param(gettid(), ¶ms) ); | ||
87 | SYSCALL( task_mode(LITMUS_RT_TASK) ); | ||
88 | SYSCALL( task_mode(BACKGROUND_TASK) ); | ||
89 | |||
90 | params.priority = LITMUS_HIGHEST_PRIORITY; | ||
91 | SYSCALL( set_rt_task_param(gettid(), ¶ms) ); | ||
92 | SYSCALL( task_mode(LITMUS_RT_TASK) ); | ||
93 | SYSCALL( task_mode(BACKGROUND_TASK) ); | ||
94 | } | ||
95 | |||
45 | TESTCASE(job_control_non_rt, ALL, | 96 | TESTCASE(job_control_non_rt, ALL, |
46 | "reject job control for non-rt tasks") | 97 | "reject job control for non-rt tasks") |
47 | { | 98 | { |