diff options
author | Jennifer Averett <Jennifer.Averett@OARcorp.com> | 2009-01-16 18:57:53 +0000 |
---|---|---|
committer | Jennifer Averett <Jennifer.Averett@OARcorp.com> | 2009-01-16 18:57:53 +0000 |
commit | 22fa9d61765f1c7290ff218ce008f16491603a48 (patch) | |
tree | a9caccd59897e8b0e62208d05801371a982c0ccc /testsuites/sptests/spwatchdog/task1.c | |
parent | 2009-01-08 Joel Sherrill <joel.sherrill@OARcorp.com> (diff) | |
download | rtems-22fa9d61765f1c7290ff218ce008f16491603a48.tar.bz2 |
2009-01-16 Jennifer Averett <jennifer.averett@OARcorp.com>
* Makefile.am, configure.ac: Add new test to test Watchdog display
helper routines. These reach into the SuperCore.
* spwatchdog/.cvsignore, spwatchdog/Makefile.am, spwatchdog/delay.c,
spwatchdog/init.c, spwatchdog/prtime.c, spwatchdog/spwatchdog.scn,
spwatchdog/system.h, spwatchdog/task1.c: New files.
Diffstat (limited to '')
-rw-r--r-- | testsuites/sptests/spwatchdog/task1.c | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/testsuites/sptests/spwatchdog/task1.c b/testsuites/sptests/spwatchdog/task1.c new file mode 100644 index 0000000000..a89e79243e --- /dev/null +++ b/testsuites/sptests/spwatchdog/task1.c @@ -0,0 +1,172 @@ +/* Task_1 + * + * This routine serves as a test task. XXX + * + * Input parameters: + * argument - task argument + * + * Output parameters: NONE + * + * COPYRIGHT (c) 2009. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id$ + */ + +#include "system.h" + +rtems_task Task_1( + rtems_task_argument argument +) +{ + rtems_id tmid; + rtems_time_of_day time; + rtems_status_code status; + +/* Get id */ + + puts( "TA1 - rtems_timer_ident - identing timer 1" ); + status = rtems_timer_ident( Timer_name[ 1 ], &tmid ); + directive_failed( status, "rtems_timer_ident" ); + printf( "TA1 - timer 1 has id (0x%x)\n", tmid ); + +/* after which is allowed to fire */ + + Print_time(); + + puts( "TA1 - rtems_timer_fire_after - timer 1 in 3 seconds" ); + status = rtems_timer_fire_after( + tmid, + 3 * TICKS_PER_SECOND, + Delayed_resume, + NULL + ); + directive_failed( status, "rtems_timer_fire_after" ); + + puts( "TA1 - rtems_task_suspend( RTEMS_SELF )" ); + status = rtems_task_suspend( RTEMS_SELF ); + directive_failed( status, "rtems_task_suspend" ); + + Print_time(); + +/* after which is reset and allowed to fire */ + + puts( "TA1 - rtems_timer_fire_after - timer 1 in 3 seconds" ); + status = rtems_timer_fire_after( + tmid, + 3 * TICKS_PER_SECOND, + Delayed_resume, + NULL + ); + directive_failed( status, "rtems_timer_fire_after" ); + + puts( "TA1 - rtems_task_wake_after - 1 second" ); + status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); + directive_failed( status, "rtems_task_wake_after" ); + + Print_time(); + + puts( "TA1 - rtems_timer_reset - timer 1" ); + status = rtems_timer_reset( tmid ); + directive_failed( status, "rtems_timer_reset" ); + + + + +#if 0 + puts( "TA1 - rtems_task_suspend( RTEMS_SELF )" ); + status = rtems_task_suspend( RTEMS_SELF ); + directive_failed( status, "rtems_task_suspend" ); + + Print_time(); + + rtems_test_pause(); + + /* + * Reset the time since we do not know how long the user waited + * before pressing <cr> at the pause. This insures that the + * actual output matches the screen. + */ + + build_time( &time, 12, 31, 1988, 9, 0, 7, 0 ); + + status = rtems_clock_set( &time ); + directive_failed( status, "rtems_clock_set" ); + +/* after which is canceled */ + + puts( "TA1 - rtems_timer_fire_after - timer 1 in 3 seconds" ); + status = rtems_timer_fire_after( + tmid, + 3 * TICKS_PER_SECOND, + Delayed_resume, + NULL + ); + directive_failed( status, "rtems_timer_fire_after" ); + + puts( "TA1 - rtems_timer_cancel - timer 1" ); + status = rtems_timer_cancel( tmid ); + directive_failed( status, "rtems_timer_cancel" ); + +/* when which is allowed to fire */ + + Print_time(); + + status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); + directive_failed( status, "rtems_clock_get" ); + + time.second += 3; + + puts( "TA1 - rtems_timer_fire_when - timer 1 in 3 seconds" ); + status = rtems_timer_fire_when( tmid, &time, Delayed_resume, NULL ); + directive_failed( status, "rtems_timer_fire_when" ); + + puts( "TA1 - rtems_task_suspend( RTEMS_SELF )" ); + status = rtems_task_suspend( RTEMS_SELF ); + directive_failed( status, "rtems_task_suspend" ); + + Print_time(); + +/* when which is canceled */ + + status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); + directive_failed( status, "rtems_clock_get" ); + + time.second += 3; + + puts( "TA1 - rtems_timer_fire_when - timer 1 in 3 seconds" ); + status = rtems_timer_fire_when( tmid, &time, Delayed_resume, NULL ); + directive_failed( status, "rtems_timer_fire_when" ); + + puts( "TA1 - rtems_task_wake_after - 1 second" ); + status = rtems_task_wake_after( 1 * TICKS_PER_SECOND ); + directive_failed( status, "rtems_task_wake_after" ); + + Print_time(); + + puts( "TA1 - rtems_timer_cancel - timer 1" ); + status = rtems_timer_cancel( tmid ); + directive_failed( status, "rtems_timer_cancel" ); + +/* delete */ + puts( "TA1 - rtems_task_wake_after - YIELD (only task at priority)" ); + status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); + directive_failed( status, "rtems_task_wake_after" ); +#endif + + _Watchdog_Report_chain( + "_Watchdog_Ticks_chain", + & _Watchdog_Ticks_chain + ); + + puts( "TA1 - timer_deleting - timer 1" ); + status = rtems_timer_delete( tmid ); + directive_failed( status, "rtems_timer_delete" ); + + puts( "*** END OF RTEMS WATCHDOG PROGRAM ***" ); + rtems_test_exit( 0 ); +} |