source: rtems/testsuites/sptests/sp24/task1.c @ 3e26377b

4.104.114.84.95
Last change on this file since 3e26377b was 3aa4c2e0, checked in by Joel Sherrill <joel.sherrill@…>, on 08/02/02 at 00:52:14

2002-08-01 Joel Sherrill <joel@…>

  • Per PR47 add support for buffered test output. This involved adding defines to redirect output to a buffer and dump it when full, at "test pause", and at exit. To avoid problems when redefining exit(), all tests were modified to call rtems_test_exit(). Some tests, notable psxtests, had to be modified to include the standard test macro .h file (pmacros.h or tmacros.h) to enable this support.
  • sp01/task1.c, sp02/task1.c, sp03/task2.c, sp04/task1.c, sp05/task1.c, sp06/task1.c, sp07/taskexit.c, sp08/task1.c, sp09/task1.c, sp11/task1.c, sp12/pritask.c, sp12/task5.c, sp13/task1.c, sp14/task2.c, sp15/task1.c, sp16/task1.c, sp17/task1.c, sp19/fptask.c, sp20/task1.c, sp21/task1.c, sp22/task1.c, sp23/task1.c, sp24/task1.c, sp25/task1.c, sp26/init.c, sp26/task1.c, sp30/task1.c, sp31/task1.c, spsize/init.c, spsize/size.c: Modified.
  • Property mode set to 100644
File size: 1.7 KB
Line 
1/*  Task_1_through_3
2 *
3 *  This task is a cyclic version of test1 to asssure that the times
4 *  displayed are not skewed as in test1.  "TA1" is printed once every
5 *  5 seconds, "TA2" is printed once every 10 seconds, and "TA3" is
6 *  printed once every 15 seconds.  The times displayed should be
7 *  in multiples of 5, 10, and 15 for TA1, TA2, and TA3 respectively.
8 *  If the times are skewed from these values, then the calendar time
9 *  does not correspond correctly with the number of ticks.
10 *
11 *  COPYRIGHT (c) 1989-1999.
12 *  On-Line Applications Research Corporation (OAR).
13 *
14 *  The license and distribution terms for this file may be
15 *  found in the file LICENSE in this distribution or at
16 *  http://www.OARcorp.com/rtems/license.html.
17 *
18 *  $Id$
19 */
20
21#include "system.h"
22
23rtems_task Task_1_through_3(
24  rtems_task_argument argument
25)
26{
27  rtems_id          tid;
28  rtems_time_of_day time;
29  rtems_status_code status;
30
31  status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid );
32  directive_failed( status, "rtems_task_ident of self" );
33
34  while ( FOREVER )  {
35    status = rtems_timer_fire_after(
36      Timer_id[ argument ],
37      task_number( tid ) * 5 * TICKS_PER_SECOND,
38      Resume_task,
39      NULL
40    );
41    directive_failed( status, "tm_fire_after failed" );
42
43    status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time );
44    directive_failed( status, "rtems_clock_get failed" );
45
46    if ( time.second >= 35 ) {
47      puts( "*** END OF TEST 24 ***" );
48      rtems_test_exit( 0 );
49    }
50
51    put_name( Task_name[ task_number( tid ) ], FALSE );
52    print_time( " - rtems_clock_get - ", &time, "\n" );
53
54    status = rtems_task_suspend( RTEMS_SELF );
55    directive_failed( status, "rtems_task_suspend" );
56  }
57}
Note: See TracBrowser for help on using the repository browser.