summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests/spcbssched02/init.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2011-09-20 13:06:58 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2011-09-20 13:06:58 +0000
commit7441603540575b6d762411f11ab354ec65495652 (patch)
tree1ed6b75bfeb90623e37dd78ec68ae004b1c71acf /testsuites/sptests/spcbssched02/init.c
parent2011-09-20 Petr Benes <benesp16@fel.cvut.cz> (diff)
downloadrtems-7441603540575b6d762411f11ab354ec65495652.tar.bz2
2011-09-20 Petr Benes <benesp16@fel.cvut.cz>
PR 1916/testing * spcbssched02/init.c, spcbssched02/spcbssched02.scn, spcbssched02/system.h, spcbssched02/task_periodic.c, spedfsched03/init.c, spedfsched03/system.h, spedfsched03/tasks_aperiodic.c: Improve coverage.
Diffstat (limited to 'testsuites/sptests/spcbssched02/init.c')
-rw-r--r--testsuites/sptests/spcbssched02/init.c33
1 files changed, 30 insertions, 3 deletions
diff --git a/testsuites/sptests/spcbssched02/init.c b/testsuites/sptests/spcbssched02/init.c
index 7cb305cd74..412fa30a11 100644
--- a/testsuites/sptests/spcbssched02/init.c
+++ b/testsuites/sptests/spcbssched02/init.c
@@ -47,6 +47,7 @@ rtems_task Init(
puts( "\n\n*** TEST CBS SCHEDULER 2 ***" );
Task_name = rtems_build_name( 'P', 'T', '1', ' ' );
+ Task_name2 = rtems_build_name( 'P', 'T', '2', ' ' );
status = rtems_task_create(
Task_name,
@@ -58,6 +59,16 @@ rtems_task Init(
);
directive_failed( status, "rtems_task_create loop" );
+ status = rtems_task_create(
+ Task_name2,
+ Priority,
+ RTEMS_MINIMUM_STACK_SIZE * 4,
+ RTEMS_NO_PREEMPT,
+ RTEMS_DEFAULT_ATTRIBUTES,
+ &Task_id2
+ );
+ directive_failed( status, "rtems_task_create loop" );
+
printf( "Init: Initializing the CBS\n" );
if ( rtems_cbs_initialize() )
printf( "ERROR: CBS INITIALIZATION FAILED\n" );
@@ -88,6 +99,8 @@ rtems_task Init(
printf( "ERROR: CREATE SERVER FAILED\n" );
if ( rtems_cbs_create_server( &params, NULL, &server_id ) )
printf( "ERROR: CREATE SERVER FAILED\n" );
+ if ( rtems_cbs_create_server( &params, NULL, &server_id ) )
+ printf( "ERROR: CREATE SERVER FAILED\n" );
if ( rtems_cbs_create_server( &params, NULL, &server_id ) !=
SCHEDULER_CBS_ERROR_FULL )
printf( "ERROR: CREATE SERVER PASSED UNEXPECTEDLY\n" );
@@ -217,11 +230,25 @@ rtems_task Init(
if ( rtems_cbs_initialize() )
printf( "ERROR: CBS INITIALIZATION FAILED\n" );
- /* Start periodic task */
+ /* Start periodic tasks */
printf( "Init: Starting periodic task\n" );
status = rtems_task_start( Task_id, Task_Periodic, 1 );
directive_failed( status, "rtems_task_start periodic" );
+ status = rtems_task_start( Task_id2, Task_Periodic, 2 );
+ directive_failed( status, "rtems_task_start periodic" );
+
+ rtems_task_wake_after( 130 );
+
+ printf( "Init: Checking server with a deleted task\n" );
+ if ( rtems_cbs_get_execution_time( 0, &exec_time, &abs_time ) )
+ printf( "ERROR: GET EXECUTION TIME FAILED\n" );
+ if ( rtems_cbs_get_remaining_budget( 0, &remaining_budget) )
+ printf( "ERROR: GET REMAINING BUDGET FAILED\n" );
+
+ if ( rtems_cbs_cleanup() )
+ printf( "ERROR: CBS CLEANUP\n" );
- status = rtems_task_delete( RTEMS_SELF );
- directive_failed( status, "rtems_task_delete of RTEMS_SELF" );
+ fflush(stdout);
+ puts( "*** END OF TEST CBS SCHEDULER 2 ***" );
+ rtems_test_exit( 0 );
}