diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-09-08 15:32:22 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-09-21 08:59:33 +0200 |
commit | 8123cae864579219e5003a67b451ca4cc07d998b (patch) | |
tree | e50feb997422afc2d20af9cd730d43d5896e0e5c /testsuites | |
parent | smptests/smpmutex01: Use test case functions (diff) | |
download | rtems-8123cae864579219e5003a67b451ca4cc07d998b.tar.bz2 |
rtems: Add rtems_task_get_priority()
Update #2556.
Update #2784.
Diffstat (limited to 'testsuites')
-rw-r--r-- | testsuites/smptests/smpmutex01/init.c | 16 | ||||
-rw-r--r-- | testsuites/sptests/spscheduler01/init.c | 39 | ||||
-rw-r--r-- | testsuites/sptests/spscheduler01/spscheduler01.doc | 10 |
3 files changed, 65 insertions, 0 deletions
diff --git a/testsuites/smptests/smpmutex01/init.c b/testsuites/smptests/smpmutex01/init.c index c6b1b48c9d..d88b7b8113 100644 --- a/testsuites/smptests/smpmutex01/init.c +++ b/testsuites/smptests/smpmutex01/init.c @@ -57,6 +57,21 @@ typedef struct { static test_context test_instance; +static void test_task_get_priority_not_defined(test_context *ctx) +{ + rtems_status_code sc; + rtems_id scheduler_id; + rtems_task_priority priority; + + sc = rtems_scheduler_ident(SCHED_B, &scheduler_id); + rtems_test_assert(sc == RTEMS_SUCCESSFUL); + + priority = 0; + sc = rtems_task_get_priority(RTEMS_SELF, scheduler_id, &priority); + rtems_test_assert(sc == RTEMS_NOT_DEFINED); + rtems_test_assert(priority == 0); +} + static void start_task( test_context *ctx, task_id id, @@ -340,6 +355,7 @@ static void test(void) test_context *ctx = &test_instance; test_init(ctx); + test_task_get_priority_not_defined(ctx); test_simple_inheritance(ctx); test_dequeue_order_one_scheduler_instance(ctx); test_simple_boosting(ctx); diff --git a/testsuites/sptests/spscheduler01/init.c b/testsuites/sptests/spscheduler01/init.c index bb0c16def6..d6213c6bcc 100644 --- a/testsuites/sptests/spscheduler01/init.c +++ b/testsuites/sptests/spscheduler01/init.c @@ -411,6 +411,44 @@ static void test_scheduler_get_processors(void) #endif /* defined(__RTEMS_HAVE_SYS_CPUSET_H__) */ } +static void test_task_get_priority(void) +{ + rtems_status_code sc; + rtems_id scheduler_id; + rtems_task_priority priority; + rtems_task_priority priority_2; + + sc = rtems_task_get_scheduler(RTEMS_SELF, &scheduler_id); + rtems_test_assert(sc == RTEMS_SUCCESSFUL); + + sc = rtems_task_get_priority(RTEMS_SELF, scheduler_id, NULL); + rtems_test_assert(sc == RTEMS_INVALID_ADDRESS); + + priority = 0; + + sc = rtems_task_get_priority(RTEMS_SELF, invalid_id, &priority); + rtems_test_assert(sc == RTEMS_INVALID_ID); + rtems_test_assert(priority == 0); + + sc = rtems_task_get_priority(invalid_id, scheduler_id, &priority); + rtems_test_assert(sc == RTEMS_INVALID_ID); + rtems_test_assert(priority == 0); + + sc = rtems_task_set_priority(RTEMS_SELF, RTEMS_CURRENT_PRIORITY, &priority); + rtems_test_assert(sc == RTEMS_SUCCESSFUL); + rtems_test_assert(priority != 0); + + priority_2 = 0; + sc = rtems_task_get_priority(RTEMS_SELF, scheduler_id, &priority_2); + rtems_test_assert(sc == RTEMS_SUCCESSFUL); + rtems_test_assert(priority_2 == priority); + + priority_2 = 0; + sc = rtems_task_get_priority(rtems_task_self(), scheduler_id, &priority_2); + rtems_test_assert(sc == RTEMS_SUCCESSFUL); + rtems_test_assert(priority_2 == priority); +} + static void Init(rtems_task_argument arg) { rtems_resource_snapshot snapshot; @@ -425,6 +463,7 @@ static void Init(rtems_task_argument arg) test_task_get_set_scheduler(); test_scheduler_ident(); test_scheduler_get_processors(); + test_task_get_priority(); rtems_test_assert(rtems_resource_snapshot_check(&snapshot)); diff --git a/testsuites/sptests/spscheduler01/spscheduler01.doc b/testsuites/sptests/spscheduler01/spscheduler01.doc index d398315b13..2182928722 100644 --- a/testsuites/sptests/spscheduler01/spscheduler01.doc +++ b/testsuites/sptests/spscheduler01/spscheduler01.doc @@ -6,8 +6,18 @@ directives: - rtems_task_get_affinity() - rtems_task_set_affinity() + - rtems_task_get_scheduler() + - rtems_task_set_scheduler() + - rtems_scheduler_ident() + - rtems_scheduler_get_processor_set() + - rtems_task_get_priority() concepts: - Ensure that the task set/get affinity functions work on uni-processor configurations. + - Ensure that the task set/get scheduler functions work on uni-processor + configurations. + - Ensure that the scheduler functions work on uni-processor configurations. + - Ensure that the task get priority function works on uni-processor + configurations. |