diff options
| author | Bjoern Brandenburg <bbb@mpi-sws.org> | 2012-06-26 04:55:01 -0400 |
|---|---|---|
| committer | Bjoern Brandenburg <bbb@mpi-sws.org> | 2012-06-26 04:55:01 -0400 |
| commit | 0468289e9210179f5c2bf148ec57305c33032ed1 (patch) | |
| tree | a4c3ac255ee405e57ea1893bf5be0ce07746221a | |
| parent | e4b2da0cecd9a43be71430b1f8e2fbbde07ea6ec (diff) | |
Add test cases for P-FP priorities
Make sure out-of-range priorities
are always rejected.
| -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 | { |
