aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern Brandenburg <bbb@mpi-sws.org>2012-06-26 04:55:01 -0400
committerBjoern Brandenburg <bbb@mpi-sws.org>2012-06-26 04:55:01 -0400
commit0468289e9210179f5c2bf148ec57305c33032ed1 (patch)
treea4c3ac255ee405e57ea1893bf5be0ce07746221a
parente4b2da0cecd9a43be71430b1f8e2fbbde07ea6ec (diff)
Add test cases for P-FP priorities
Make sure out-of-range priorities are always rejected.
-rw-r--r--tests/core_api.c51
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(), &params) ); 43 SYSCALL( set_rt_task_param(gettid(), &params) );
43} 44}
44 45
46TESTCASE(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(), &params) );
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(), &params) );
67 SYSCALL_FAILS( EINVAL, task_mode(LITMUS_RT_TASK) );
68
69}
70
71TESTCASE(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(), &params) );
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(), &params) );
92 SYSCALL( task_mode(LITMUS_RT_TASK) );
93 SYSCALL( task_mode(BACKGROUND_TASK) );
94}
95
45TESTCASE(job_control_non_rt, ALL, 96TESTCASE(job_control_non_rt, ALL,
46 "reject job control for non-rt tasks") 97 "reject job control for non-rt tasks")
47{ 98{