summaryrefslogtreecommitdiffstats
path: root/testsuites/sptests/sp31
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2009-12-04 14:08:51 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2009-12-04 14:08:51 +0000
commitbb14405df298451374683a127c9219aaa63a84b3 (patch)
treeed03c6a1ee4431095432e2618d0a797046c6febe /testsuites/sptests/sp31
parent2009-12-04 Ralf Corsépius <ralf.corsepius@rtems.org> (diff)
downloadrtems-bb14405df298451374683a127c9219aaa63a84b3.tar.bz2
2009-12-04 Sebastian Huber <Sebastian.Huber@embedded-brains.de>
* sp31/sp31.scn, sp31/task1.c, spintrcritical17/init.c: New test cases. Updated copyright notice.
Diffstat (limited to 'testsuites/sptests/sp31')
-rw-r--r--testsuites/sptests/sp31/sp31.scn12
-rw-r--r--testsuites/sptests/sp31/task1.c71
2 files changed, 82 insertions, 1 deletions
diff --git a/testsuites/sptests/sp31/sp31.scn b/testsuites/sptests/sp31/sp31.scn
index e9b74969ed..9db60d23b2 100644
--- a/testsuites/sptests/sp31/sp31.scn
+++ b/testsuites/sptests/sp31/sp31.scn
@@ -47,6 +47,16 @@ TA1 - rtems_timer_server_fire_when - timer 1 in 3 seconds
TA1 - rtems_task_wake_after - 1 second
TA1 - rtems_clock_get_tod - 09:00:11 12/31/1988
TA1 - rtems_timer_cancel - timer 1
+TA1 - rtems_timer_server_fire_when - timer 1 in 3 seconds
+TA1 - rtems_timer_server_fire_when - timer 2 in 3 seconds
+TA1 - rtems_task_wake_after - 1 second
+TA1 - rtems_timer_server_fire_when - timer 2 in 3 seconds
+TA1 - rtems_timer_cancel - timer 1
+TA1 - rtems_timer_cancel - timer 2
+TA1 - rtems_timer_server_fire_when - timer 1 in 1 seconds
+TA1 - rtems_timer_server_fire_after - timer 2 in 1 tick
+TA1 - rtems_task_wake_after - 1 tick
+TA1 - rtems_timer_cancel - timer 1
TA1 - rtems_task_wake_after - YIELD (only task at priority)
TA1 - timer_deleting - timer 1
-*** END OF TEST 31 ***
+*** END OF TEST 31 ***
diff --git a/testsuites/sptests/sp31/task1.c b/testsuites/sptests/sp31/task1.c
index 13385aa319..67f06f821a 100644
--- a/testsuites/sptests/sp31/task1.c
+++ b/testsuites/sptests/sp31/task1.c
@@ -11,6 +11,8 @@
* COPYRIGHT (c) 1989-2009.
* On-Line Applications Research Corporation (OAR).
*
+ * Copyright (c) 2009 embedded brains GmbH.
+ *
* 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.
@@ -35,6 +37,14 @@ rtems_timer_service_routine Should_not_fire_TSR(
TSR_fired = 1;
}
+rtems_timer_service_routine Do_nothing(
+ rtems_id ignored_id,
+ void *ignored_address
+)
+{
+ /* Do nothing */
+}
+
static Watchdog_Interval schedule_time( void )
{
const Watchdog_Control *watchdog =
@@ -271,6 +281,67 @@ rtems_task Task_1(
status = rtems_timer_cancel( tmid );
directive_failed( status, "rtems_timer_cancel" );
+/* TOD timer insert with non empty TOD timer chain */
+
+ status = rtems_clock_get_tod( &time );
+ directive_failed( status, "rtems_clock_get_tod" );
+
+ time.second += 3;
+
+ puts( "TA1 - rtems_timer_server_fire_when - timer 1 in 3 seconds" );
+ status = rtems_timer_server_fire_when( tmid, &time, Do_nothing, NULL );
+ directive_failed( status, "rtems_timer_server_fire_when" );
+
+ puts( "TA1 - rtems_timer_server_fire_when - timer 2 in 3 seconds" );
+ status = rtems_timer_server_fire_when( tmid2, &time, Do_nothing, NULL );
+ directive_failed( status, "rtems_timer_server_fire_when" );
+
+ puts( "TA1 - rtems_task_wake_after - 1 second" );
+ status = rtems_task_wake_after( 1 * rtems_clock_get_ticks_per_second() );
+ directive_failed( status, "rtems_task_wake_after" );
+
+ puts( "TA1 - rtems_timer_server_fire_when - timer 2 in 3 seconds" );
+ status = rtems_timer_server_fire_when( tmid2, &time, Do_nothing, NULL );
+ directive_failed( status, "rtems_timer_server_fire_when" );
+
+ puts( "TA1 - rtems_timer_cancel - timer 1" );
+ status = rtems_timer_cancel( tmid );
+ directive_failed( status, "rtems_timer_cancel" );
+
+ puts( "TA1 - rtems_timer_cancel - timer 2" );
+ status = rtems_timer_cancel( tmid2 );
+ directive_failed( status, "rtems_timer_cancel" );
+
+/* TOD chain processing with time wrap */
+
+ time.second = 30;
+
+ status = rtems_clock_set( &time );
+ directive_failed( status, "rtems_clock_set" );
+
+ time.second = 31;
+
+ puts( "TA1 - rtems_timer_server_fire_when - timer 1 in 1 seconds" );
+ status = rtems_timer_server_fire_when( tmid, &time, Do_nothing, NULL );
+ directive_failed( status, "rtems_timer_server_fire_when" );
+
+ time.second = 29;
+
+ status = rtems_clock_set( &time );
+ directive_failed( status, "rtems_clock_set" );
+
+ puts( "TA1 - rtems_timer_server_fire_after - timer 2 in 1 tick" );
+ status = rtems_timer_server_fire_after( tmid2, 1, Do_nothing, NULL );
+ directive_failed( status, "rtems_timer_server_fire_after" );
+
+ puts( "TA1 - rtems_task_wake_after - 1 tick" );
+ status = rtems_task_wake_after( 1 );
+ directive_failed( status, "rtems_task_wake_after" );
+
+ 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 );