Index: c/src/tests/libtests/malloctest/init.c
===================================================================
--- c/src/tests/libtests/malloctest/init.c	(revision 4a5e65186b31d4ed8d11b413fec17d803f53f0e3)
+++ c/src/tests/libtests/malloctest/init.c	(revision 4a5e65186b31d4ed8d11b413fec17d803f53f0e3)
@@ -0,0 +1,114 @@
+/*  Init
+ *
+ *  This routine is the initialization task for this test program.
+ *  It is a user initialization task and has the responsibility for creating
+ *  and starting the tasks that make up the test.  If the time of day
+ *  clock is required for the test, it should also be set to a known
+ *  value by this function.
+ *
+ *  Input parameters:
+ *    argument - task argument
+ *
+ *  Output parameters:  NONE
+ *
+ *  COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
+ *  On-Line Applications Research Corporation (OAR).
+ *  All rights assigned to U.S. Government, 1994.
+ *
+ *  This material may be reproduced by or for the U.S. Government pursuant
+ *  to the copyright license under the clause at DFARS 252.227-7013.  This
+ *  notice must appear in all copies of this file and its derivatives.
+ *
+ *  $Id$
+ */
+
+#define TEST_INIT
+#include "system.h"
+
+rtems_task Init(
+  rtems_task_argument argument
+)
+{
+  rtems_time_of_day time;
+  rtems_status_code status;
+
+  puts( "\n\n*** MALLOC TEST ***" );
+
+  build_time( &time, 12, 31, 1988, 9, 0, 0, 0 );
+  status = rtems_clock_set( &time );
+  directive_failed( status, "rtems_clock_set" );
+
+  Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' );
+  Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' );
+  Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' );
+  Task_name[ 4 ] = rtems_build_name( 'T', 'A', '4', ' ' );
+  Task_name[ 5 ] = rtems_build_name( 'T', 'A', '5', ' ' );
+
+  status = rtems_task_create(
+     Task_name[ 1 ],
+     1,
+     TASK_STACK_SIZE,
+     RTEMS_DEFAULT_MODES,
+     RTEMS_DEFAULT_ATTRIBUTES,
+     &Task_id[ 1 ]
+  );
+  directive_failed( status, "rtems_task_create of TA1" );
+
+  status = rtems_task_create(
+     Task_name[ 2 ],
+     1,
+     TASK_STACK_SIZE,
+     RTEMS_DEFAULT_MODES,
+     RTEMS_DEFAULT_ATTRIBUTES,
+     &Task_id[ 2 ]
+  );
+  directive_failed( status, "rtems_task_create of TA2" );
+
+  status = rtems_task_create(
+     Task_name[ 3 ],
+     1,
+     TASK_STACK_SIZE,
+     RTEMS_DEFAULT_MODES,
+     RTEMS_DEFAULT_ATTRIBUTES,
+     &Task_id[ 3 ]
+  );
+  directive_failed( status, "rtems_task_create of TA3" );
+
+  status = rtems_task_create(
+     Task_name[ 4 ],
+     1,
+     TASK_STACK_SIZE,
+     RTEMS_DEFAULT_MODES,
+     RTEMS_DEFAULT_ATTRIBUTES,
+     &Task_id[ 4 ]
+  );
+  directive_failed( status, "rtems_task_create of TA4" );
+
+  status = rtems_task_create(
+     Task_name[ 5 ],
+     1,
+     TASK_STACK_SIZE,
+     RTEMS_DEFAULT_MODES,
+     RTEMS_DEFAULT_ATTRIBUTES,
+     &Task_id[ 5 ]
+  );
+  directive_failed( status, "rtems_task_create of TA5" );
+
+  status = rtems_task_start( Task_id[ 1 ], Task_1_through_5, 0 );
+  directive_failed( status, "rtems_task_start of TA1" );
+
+  status = rtems_task_start( Task_id[ 2 ], Task_1_through_5, 0 );
+  directive_failed( status, "rtems_task_start of TA2" );
+
+  status = rtems_task_start( Task_id[ 3 ], Task_1_through_5, 0 );
+  directive_failed( status, "rtems_task_start of TA3" );
+
+  status = rtems_task_start( Task_id[ 4 ], Task_1_through_5, 0 );
+  directive_failed( status, "rtems_task_start of TA4" );
+
+  status = rtems_task_start( Task_id[ 5 ], Task_1_through_5, 0 );
+  directive_failed( status, "rtems_task_start of TA5" );
+
+  status = rtems_task_delete( RTEMS_SELF );
+  directive_failed( status, "rtems_task_delete of RTEMS_SELF" );
+}
Index: c/src/tests/libtests/malloctest/system.h
===================================================================
--- c/src/tests/libtests/malloctest/system.h	(revision 4a5e65186b31d4ed8d11b413fec17d803f53f0e3)
+++ c/src/tests/libtests/malloctest/system.h	(revision 4a5e65186b31d4ed8d11b413fec17d803f53f0e3)
@@ -0,0 +1,49 @@
+/*  system.h
+ *
+ *  This include file contains information that is included in every
+ *  function in the test set.
+ *
+ *  COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
+ *  On-Line Applications Research Corporation (OAR).
+ *  All rights assigned to U.S. Government, 1994.
+ *
+ *  This material may be reproduced by or for the U.S. Government pursuant
+ *  to the copyright license under the clause at DFARS 252.227-7013.  This
+ *  notice must appear in all copies of this file and its derivatives.
+ *
+ *  $Id$
+ */
+
+#include <tmacros.h>
+
+/* macros */
+
+#define TASK_STACK_SIZE (RTEMS_MINIMUM_STACK_SIZE*3)
+
+/* functions */
+
+rtems_task Init(
+  rtems_task_argument argument
+);
+
+rtems_task Task_1_through_5(
+  rtems_task_argument argument
+);
+
+void blow_stack( void );
+
+/* configuration information */
+
+#define CONFIGURE_SPTEST
+
+#define CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_TEST_NEEDS_CLOCK_DRIVER
+
+#include <confdefs.h>
+
+/* global variables */
+
+TEST_EXTERN rtems_id   Task_id[ 4 ];         /* array of task ids */
+TEST_EXTERN rtems_name Task_name[ 4 ];       /* array of task names */
+
+/* end of include file */
Index: c/src/tests/libtests/malloctest/task1.c
===================================================================
--- c/src/tests/libtests/malloctest/task1.c	(revision 4a5e65186b31d4ed8d11b413fec17d803f53f0e3)
+++ c/src/tests/libtests/malloctest/task1.c	(revision 4a5e65186b31d4ed8d11b413fec17d803f53f0e3)
@@ -0,0 +1,67 @@
+/*  task1.c
+ *
+ *  This set of three tasks do some simple task switching for about
+ *  15 seconds and then call a routine to "blow the stack".
+ *
+ *  COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
+ *  On-Line Applications Research Corporation (OAR).
+ *  All rights assigned to U.S. Government, 1994.
+ *
+ *  This material may be reproduced by or for the U.S. Government pursuant
+ *  to the copyright license under the clause at DFARS 252.227-7013.  This
+ *  notice must appear in all copies of this file and its derivatives.
+ *
+ *  $Id$
+ */
+
+#include "system.h"
+#include <libcsupport.h>    /* for malloc_dump, malloc_walk */
+#include <string.h>         /* for memset */
+
+#define NUM_PASSES 100
+
+rtems_task Task_1_through_5(
+  rtems_task_argument argument
+)
+{
+  int i;
+  unsigned int passes = 0;
+  rtems_id          tid;
+  rtems_time_of_day time;
+  rtems_status_code status;
+  unsigned char *mem_ptr;
+  int mem_amt;
+
+  status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid );
+  directive_failed( status, "rtems_task_ident" );
+
+  while (TRUE)
+  {
+    if ( passes++ > NUM_PASSES )
+        exit(0);
+
+    status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time );
+    directive_failed( status, "rtems_clock_get" );
+
+    put_name( Task_name[ task_number( tid ) ], FALSE );
+    print_time( " - rtems_clock_get - ", &time, "\n" );
+
+    mem_amt = rand() * task_number( tid );
+    printf("mallocing %d bytes\n",mem_amt);
+    mem_ptr = malloc ( mem_amt);
+    memset( mem_ptr, mem_amt, mem_amt );
+    malloc_dump();
+    malloc_walk(1,FALSE);
+    status = rtems_task_wake_after( task_number( tid ) * 1 * TICKS_PER_SECOND/4 );
+    for (i=0; i < mem_amt; i++)
+    {
+       if ( mem_ptr[i] != (mem_amt & 0xff))
+       {
+          printf("failed %d, %d, 0x%x, 0x%x\n",i,mem_amt,mem_ptr[i],mem_amt&0xff);
+          exit(1);
+       }
+    }
+    directive_failed( status, "rtems_task_wake_after" );
+    free( mem_ptr );
+  }
+}
