Index: testsuites/sptests/ChangeLog
===================================================================
--- testsuites/sptests/ChangeLog	(revision 4b4108a4c5632255989b1379e70221d011018ee4)
+++ testsuites/sptests/ChangeLog	(revision 02819318cdd3516e1e2a625d26d532fda7eb8cd3)
@@ -1,2 +1,9 @@
+2009-07-08	Joel Sherrill <joel.sherrill@OARcorp.com>
+
+	* Makefile.am, configure.ac: Add test of restarting a task which is in
+	the middle of a sleep or wake after.
+	* sp57/.cvsignore, sp57/Makefile.am, sp57/init.c, sp57/sp57.doc,
+	sp57/sp57.scn: New files.
+
 2009-07-08	Joel Sherrill <joel.sherrill@OARcorp.com>
 
Index: testsuites/sptests/Makefile.am
===================================================================
--- testsuites/sptests/Makefile.am	(revision 4b4108a4c5632255989b1379e70221d011018ee4)
+++ testsuites/sptests/Makefile.am	(revision 02819318cdd3516e1e2a625d26d532fda7eb8cd3)
@@ -8,5 +8,5 @@
     sp15 sp16 sp17 sp19 sp20 sp21 sp22 sp23 sp24 sp25 sp26 sp27 sp28 sp29 \
     sp30 sp31 sp32 sp33 sp34 sp35 sp37 sp38 sp39 sp40 sp41 sp42 sp43 sp44 \
-    sp45 sp46 sp47 sp48 sp49 sp50 sp51 sp52 sp53 sp54 sp55 sp56 \
+    sp45 sp46 sp47 sp48 sp49 sp50 sp51 sp52 sp53 sp54 sp55 sp56 sp57 \
     spchain spobjgetnext spprintk spsize spstkalloc spwatchdog spwkspace \
     spfatal01 spfatal02 spfatal03 spfatal04 spfatal05 spfatal06 spfatal07 \
Index: testsuites/sptests/configure.ac
===================================================================
--- testsuites/sptests/configure.ac	(revision 4b4108a4c5632255989b1379e70221d011018ee4)
+++ testsuites/sptests/configure.ac	(revision 02819318cdd3516e1e2a625d26d532fda7eb8cd3)
@@ -82,4 +82,5 @@
 sp55/Makefile
 sp56/Makefile
+sp57/Makefile
 spchain/Makefile
 spfatal01/Makefile
Index: testsuites/sptests/sp57/.cvsignore
===================================================================
--- testsuites/sptests/sp57/.cvsignore	(revision 02819318cdd3516e1e2a625d26d532fda7eb8cd3)
+++ testsuites/sptests/sp57/.cvsignore	(revision 02819318cdd3516e1e2a625d26d532fda7eb8cd3)
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
Index: testsuites/sptests/sp57/Makefile.am
===================================================================
--- testsuites/sptests/sp57/Makefile.am	(revision 02819318cdd3516e1e2a625d26d532fda7eb8cd3)
+++ testsuites/sptests/sp57/Makefile.am	(revision 02819318cdd3516e1e2a625d26d532fda7eb8cd3)
@@ -0,0 +1,29 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = sp57
+sp57_SOURCES = init.c
+
+dist_rtems_tests_DATA = sp57.scn
+dist_rtems_tests_DATA += sp57.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+sp57_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -DUSE_TIMER_SERVER
+
+LINK_OBJS = $(sp57_OBJECTS) $(sp57_LDADD)
+LINK_LIBS = $(sp57_LDLIBS)
+
+sp57$(EXEEXT): $(sp57_OBJECTS) $(sp57_DEPENDENCIES)
+	@rm -f sp57$(EXEEXT)
+	$(make-exe)
+
+include $(top_srcdir)/../automake/local.am
Index: testsuites/sptests/sp57/init.c
===================================================================
--- testsuites/sptests/sp57/init.c	(revision 02819318cdd3516e1e2a625d26d532fda7eb8cd3)
+++ testsuites/sptests/sp57/init.c	(revision 02819318cdd3516e1e2a625d26d532fda7eb8cd3)
@@ -0,0 +1,75 @@
+/*  Restart a task which is delaying
+ *
+ *  COPYRIGHT (c) 1989-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 <tmacros.h>
+
+rtems_task Delay_task(
+  rtems_task_argument ignored
+)
+{
+  rtems_status_code    status;
+
+  puts( "Delay - rtems_task_wake_after - OK" );
+  status = rtems_task_wake_after( RTEMS_MILLISECONDS_TO_TICKS(2000) );
+
+  puts( "ERROR - delay task woke up!!" );
+  rtems_test_exit(0);
+}
+
+rtems_task Init(
+  rtems_task_argument ignored
+)
+{
+  rtems_status_code    status;
+  rtems_id             task_id;
+
+  puts( "\n\n*** TEST 57 ***" );
+
+  puts( "Init - rtems_task_create - delay task - OK" );
+  status = rtems_task_create(
+     rtems_build_name( 'T', 'A', '1', ' ' ),
+     1,
+     RTEMS_MINIMUM_STACK_SIZE,
+     RTEMS_DEFAULT_OPTIONS,
+     RTEMS_DEFAULT_ATTRIBUTES,
+     &task_id
+  );
+  directive_failed( status, "rtems_task_create" );
+
+  puts( "Init - rtems_task_start - delay task - OK" );
+  status = rtems_task_start( task_id, Delay_task, 0 );
+  directive_failed( status, "rtems_task_start" );
+  
+  puts( "Init - rtems_task_wake_after - let delay task block - OK" );
+  status = rtems_task_wake_after( RTEMS_MILLISECONDS_TO_TICKS(1000) );
+  directive_failed( status, "rtems_task_wake_after" );
+
+  puts( "Init - rtems_task_restart - delay task - OK" );
+  status = rtems_task_restart( task_id, 0 );
+  directive_failed( status, "rtems_task_restart" );
+  
+  puts( "*** END OF TEST 57 ***" );
+  rtems_test_exit(0);
+}
+
+/* configuration information */
+
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+
+#define CONFIGURE_MAXIMUM_TASKS             2
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+#define CONFIGURE_INIT
+#include <rtems/confdefs.h>
+
+/* global variables */
Index: testsuites/sptests/sp57/sp57.scn
===================================================================
--- testsuites/sptests/sp57/sp57.scn	(revision 02819318cdd3516e1e2a625d26d532fda7eb8cd3)
+++ testsuites/sptests/sp57/sp57.scn	(revision 02819318cdd3516e1e2a625d26d532fda7eb8cd3)
@@ -0,0 +1,7 @@
+*** TEST 57 ***
+Init - rtems_task_create - delay task - OK
+Init - rtems_task_start - delay task - OK
+Init - rtems_task_wake_after - let delay task block - OK
+Delay - rtems_task_wake_after - OK
+Init - rtems_task_restart - delay task - OK
+*** END OF TEST 57 ***
