static rtems_task Init( rtems_task_argument argument ) { rtems_task_priority prio; rtems_status_code status; TEST_BEGIN(); Master = rtems_task_self(); if (RTEMS_MAXIMUM_PRIORITY >= 255) Priorities = Priorities_High; else if (RTEMS_MAXIMUM_PRIORITY >= 15) Priorities = Priorities_Low; else { puts( "Test needs at least 16 configured priority levels" ); rtems_test_exit( 0 ); } prio = RTEMS_MAXIMUM_PRIORITY - 1; status = rtems_task_set_priority(RTEMS_SELF, prio, &prio); directive_failed( status, "rtems_task_set_priority" ); if ( sizeof(Priorities_Low) / sizeof(rtems_task_priority) != MAX_TASKS ) { puts( "Priorities_Low table does not have right number of entries" ); rtems_test_exit( 0 ); } if ( sizeof(Priorities_High) / sizeof(rtems_task_priority) != MAX_TASKS ) { puts( "Priorities_High table does not have right number of entries" ); rtems_test_exit( 0 ); } puts( "Exercising blocking discipline w/extract in FIFO order " ); do_test( RTEMS_FIFO, TRUE ); puts( "Exercising blocking discipline w/unblock in FIFO order" ); do_test( RTEMS_FIFO, FALSE ); rtems_test_pause_and_screen_number( 2 ); puts( "Exercising blocking discipline w/extract in priority order " ); do_test( RTEMS_PRIORITY, TRUE ); puts( "Exercising blocking discipline w/unblock in priority order" ); do_test( RTEMS_PRIORITY, FALSE ); TEST_END(); rtems_test_exit(0); }
rtems_task Task_1( rtems_task_argument argument ) { Screen1(); rtems_test_pause_and_screen_number( 2 ); Screen2(); rtems_test_pause_and_screen_number( 3 ); Screen3(); rtems_test_pause_and_screen_number( 4 ); Screen4(); rtems_test_pause_and_screen_number( 5 ); Screen5(); rtems_test_pause_and_screen_number( 6 ); Screen6(); rtems_test_pause_and_screen_number( 7 ); Screen7(); rtems_test_pause_and_screen_number( 8 ); Screen8(); rtems_test_pause_and_screen_number( 9 ); Screen9(); rtems_test_pause_and_screen_number( 10 ); Screen10(); puts( "*** END OF TEST 9 ***" ); rtems_test_exit( 0 ); }