Files
rtems/testsuites/libtests/rtems++/Init.cc
Joel Sherrill 0074691a67 Merged very large and much appreciated patch from Chris Johns
<cjohns@plessey.com.au>.  This patch includes the ods68302 bsp,
the RTEMS++ class library, and the rtems++ test.
1997-07-31 22:13:29 +00:00

74 lines
1.8 KiB
C++

/* Init
*
* This routine is the initialization task for this test program.
*
* Input parameters:
* argument - task argument
*
* Output parameters: NONE
*
* COPYRIGHT (c) 1997
* Objective Design Systems Ltd Pty (ODS)
* All rights reserved (R) Objective Design Systems Ltd Pty
*
* COPYRIGHT (c) 1989-1997.
* On-Line Applications Research Corporation (OAR).
* Copyright assigned to U.S. Government, 1994.
*
* The license and distribution terms for this file may in
* the file LICENSE in this distribution or at
* http://www.OARcorp.com/rtems/license.html.
*
* $Id$
*/
#define TEST_INIT
#include "System.h"
rtems_task Init(rtems_task_argument )
{
puts( "\n\n*** RTEMS++ TEST ***" );
rtemsEvent end_me("INIT");
Task1 task_1;
task_1.set_end_event(end_me);
printf( "INIT - Task.create() - " );
task_1.create("TA1 ", 0, RTEMS_MINIMUM_STACK_SIZE);
printf("%s\n", task_1.last_status_string());
printf( "INIT - Task.create() - " );
task_1.create("TA1 ", 10, RTEMS_MINIMUM_STACK_SIZE * 6);
printf("%s\n", task_1.last_status_string());
printf( "INIT - Task.create() - " );
task_1.create("TA1 ", 10, RTEMS_MINIMUM_STACK_SIZE * 6);
printf("%s\n", task_1.last_status_string());
printf( "INIT - Task.restart() - " );
task_1.restart(0);
printf("%s\n", task_1.last_status_string());
printf( "INIT - Task.start(0xDEADDEAD) - " );
task_1.start(0xDEADDEAD);
printf("%s\n", task_1.last_status_string());
// block waiting for any event
rtems_event_set out;
// wait for task1 to tell me to finish
end_me.receive(RTEMS_SIGNAL_0, out);
task_1.destroy();
printf("*** END OF RTEMS++ TEST ***");
// needs to be in C, no C++ object owns the Init task
rtems_status_code status = rtems_task_delete( RTEMS_SELF );
directive_failed( status, "rtems_task_delete of RTEMS_SELF" );
}