diff options
Diffstat (limited to 'testsuites/libtests')
32 files changed, 0 insertions, 2786 deletions
diff --git a/testsuites/libtests/README b/testsuites/libtests/README deleted file mode 100644 index bc4b217832..0000000000 --- a/testsuites/libtests/README +++ /dev/null @@ -1,10 +0,0 @@ -# -# $Id$ -# - -This directory contains tests for some of the items in -the lib directories. The intent is to be able to -verify the basic functionality of a library. For example, -it is important to know that the stack checker successfully -detects tasks which both stay within and exceed their -stack limits. diff --git a/testsuites/libtests/cpuuse/cpuuse.scn b/testsuites/libtests/cpuuse/cpuuse.scn deleted file mode 100644 index f104c0c482..0000000000 --- a/testsuites/libtests/cpuuse/cpuuse.scn +++ /dev/null @@ -1,24 +0,0 @@ -*** TEST 4 *** -TA1 - 09:15:00 12/31/1988 -TA1 - rtems_task_suspend - on Task 2 -TA1 - rtems_task_suspend - on Task 3 -TA1 - killing time -TA1 - rtems_task_resume - on Task 2 -TA1 - rtems_task_resume - on Task 3 -TA2 - 09:15:03 12/31/1988 -TA3 - 09:15:04 12/31/1988 -TA1 - 09:15:05 12/31/1988 -TA2 - 09:15:06 12/31/1988 -TA3 - 09:15:07 12/31/1988 -TA1 - 09:15:08 12/31/1988 -TA1 - rtems_task_mode - change mode to NO RTEMS_PREEMPT -TA1 - 09:15:09 12/31/1988 -TA1 - 09:15:10 12/31/1988 -TA1 - 09:15:11 12/31/1988 -TA1 - 09:15:12 12/31/1988 -TA1 - 09:15:13 12/31/1988 -TA1 - 09:15:14 12/31/1988 -TA1 - rtems_task_mode - change mode to RTEMS_PREEMPT -TA2 - 09:15:15 12/31/1988 -TA3 - 09:15:16 12/31/1988 -*** END OF TEST 4 *** diff --git a/testsuites/libtests/cpuuse/init.c b/testsuites/libtests/cpuuse/init.c deleted file mode 100644 index 31e017c698..0000000000 --- a/testsuites/libtests/cpuuse/init.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * This is a clone of sp04 which has been modified to use the cpu monitoring - * library. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#define TEST_INIT -#include "system.h" - -rtems_extensions_table Extensions = { - NULL, /* task create user extension */ - NULL, /* task start user extension */ - NULL, /* task restart user extension */ - NULL, /* task delete user extension */ - Task_switch, /* task switch user extension */ - NULL, /* task begin user extension */ - NULL, /* task exitted user extension */ - NULL /* fatal error user extension */ -}; - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_status_code status; - rtems_time_of_day time; - - puts( "\n\n*** CPU USAGE LIBRARY TEST ***" ); - build_time( &time, 12, 31, 1988, 9, 15, 0, 0 ); - - status = rtems_clock_set( &time ); - directive_failed( status, "rtems_clock_set" ); - - Extension_name[ 1 ] = rtems_build_name( 'E', 'X', 'T', ' ' ); - - status = rtems_extension_create( - Extension_name[ 1 ], - &Extensions, - &Extension_id[ 1 ] - ); - directive_failed( status, "rtems_extension_create" ); - - 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', ' ' ); - - Run_count[ 1 ] = 0; - Run_count[ 2 ] = 0; - Run_count[ 3 ] = 0; - - status = rtems_task_create( - Task_name[ 1 ], - 1, - RTEMS_MINIMUM_STACK_SIZE * 2, - RTEMS_TIMESLICE, - RTEMS_FLOATING_POINT, - &Task_id[ 1 ] - ); - directive_failed( status, "rtems_task_create of TA1" ); - - status = rtems_task_create( - Task_name[ 2 ], - 1, - RTEMS_MINIMUM_STACK_SIZE * 2, - RTEMS_TIMESLICE, - RTEMS_FLOATING_POINT, - &Task_id[ 2 ] - ); - directive_failed( status, "rtems_task_create of TA2" ); - - status = rtems_task_create( - Task_name[ 3 ], - 1, - RTEMS_MINIMUM_STACK_SIZE * 2, - RTEMS_TIMESLICE, - RTEMS_FLOATING_POINT, - &Task_id[ 3 ] - ); - directive_failed( status, "rtems_task_create of TA3" ); - - status = rtems_task_start( Task_id[ 1 ], Task_1, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_2, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/libtests/cpuuse/system.h b/testsuites/libtests/cpuuse/system.h deleted file mode 100644 index 055d93a098..0000000000 --- a/testsuites/libtests/cpuuse/system.h +++ /dev/null @@ -1,69 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include <tmacros.h> - -/* functions */ - -rtems_task Init( - rtems_task_argument argument -); - -rtems_task Task_1( - rtems_task_argument argument -); - -rtems_task Task_2( - rtems_task_argument argument -); - -rtems_task Task_3( - rtems_task_argument argument -); - -void Task_switch( - rtems_tcb *unused, - rtems_tcb *heir -); - -/* configuration information */ - -#define CONFIGURE_SPTEST - -#define CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER -#define CONFIGURE_TEST_NEEDS_CLOCK_DRIVER - -#define CONFIGURE_MAXIMUM_USER_EXTENSIONS 1 -#define CONFIGURE_TICKS_PER_TIMESLICE 100 - -#define CONFIGURE_RTEMS_INIT_TASKS_TABLE - -#define CONFIGURE_EXTRA_TASK_STACKS (6 * RTEMS_MINIMUM_STACK_SIZE) - -#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 */ - -TEST_EXTERN rtems_id Extension_id[ 4 ]; -TEST_EXTERN rtems_name Extension_name[ 4 ]; /* array of task names */ - -/* array of task run counts */ -TEST_EXTERN volatile rtems_unsigned32 Run_count[ 4 ]; - -/* end of include file */ diff --git a/testsuites/libtests/cpuuse/task1.c b/testsuites/libtests/cpuuse/task1.c deleted file mode 100644 index 53f0188ca0..0000000000 --- a/testsuites/libtests/cpuuse/task1.c +++ /dev/null @@ -1,103 +0,0 @@ -/* Task_1 - * - * This test serves as a test task. It verifies timeslicing activities - * and tswitch extension processing. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1( - rtems_task_argument argument -) -{ - rtems_unsigned32 seconds; - rtems_unsigned32 old_seconds; - rtems_mode previous_mode; - rtems_time_of_day time; - rtems_status_code status; - rtems_unsigned32 start_time; - rtems_unsigned32 end_time; - - puts( "TA1 - rtems_task_suspend - on Task 2" ); - status = rtems_task_suspend( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_suspend of TA2" ); - - puts( "TA1 - rtems_task_suspend - on Task 3" ); - status = rtems_task_suspend( Task_id[ 3 ] ); - directive_failed( status, "rtems_task_suspend of TA3" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH, &start_time ); - directive_failed( status, "rtems_clock_get" ); - - puts( "TA1 - killing time" ); - - for ( ; ; ) { - status = rtems_clock_get( RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH, &end_time ); - directive_failed( status, "rtems_clock_get" ); - - if ( end_time > (start_time + 2) ) - break; - } - - puts( "TA1 - rtems_task_resume - on Task 2" ); - status = rtems_task_resume( Task_id[ 2 ] ); - directive_failed( status, "rtems_task_resume of TA2" ); - - puts( "TA1 - rtems_task_resume - on Task 3" ); - status = rtems_task_resume( Task_id[ 3 ] ); - directive_failed( status, "rtems_task_resume of TA3" ); - - while ( FOREVER ) { - if ( Run_count[ 1 ] == 3 ) { - puts( "TA1 - rtems_task_mode - change mode to NO RTEMS_PREEMPT" ); - - status = rtems_task_mode( - RTEMS_NO_PREEMPT, - RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - old_seconds = time.second; - - for ( seconds = 0 ; seconds < 6 ; ) { - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - if ( time.second != old_seconds ) { - old_seconds = time.second; - seconds++; - print_time( "TA1 - ", &time, "\n" ); - } - } - - puts( "TA1 - rtems_task_mode - change mode to RTEMS_PREEMPT" ); - status = rtems_task_mode( - RTEMS_PREEMPT, - RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode" ); - - while ( FOREVER ); - } - } -} diff --git a/testsuites/libtests/cpuuse/task2.c b/testsuites/libtests/cpuuse/task2.c deleted file mode 100644 index ff22274284..0000000000 --- a/testsuites/libtests/cpuuse/task2.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. It is just a CPU bound task - * requiring timesliced operation. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_2( - rtems_task_argument argument -) -{ - while( FOREVER ); -} diff --git a/testsuites/libtests/cpuuse/task3.c b/testsuites/libtests/cpuuse/task3.c deleted file mode 100644 index a431a99f9d..0000000000 --- a/testsuites/libtests/cpuuse/task3.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Task_3 - * - * This routine serves as a test task. It is just a CPU bound task - * requiring timesliced operation. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_3( - rtems_task_argument argument -) -{ - while( FOREVER ); -} diff --git a/testsuites/libtests/cpuuse/tswitch.c b/testsuites/libtests/cpuuse/tswitch.c deleted file mode 100644 index 9abd5f80cb..0000000000 --- a/testsuites/libtests/cpuuse/tswitch.c +++ /dev/null @@ -1,62 +0,0 @@ -/* Task_switch - * - * This routine is the tswitch user extension. It determines which - * task is being switched to and displays a message indicating the - * time and date that it gained control. - * - * Input parameters: - * unused - pointer to currently running TCB - * heir - pointer to heir TCB - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include "system.h" - -#include "cpuuse.h" - -rtems_extension Task_switch( - rtems_tcb *unused, - rtems_tcb *heir -) -{ - rtems_unsigned32 index; - rtems_time_of_day time; - rtems_status_code status; - - index = task_number( heir->Object.id ); - - switch( index ) { - case 1: - case 2: - case 3: - Run_count[ index ] += 1; - - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - put_name( Task_name[ index ], FALSE ); - print_time( "- ", &time, "\n" ); - - if ( time.second >= 16 ) { - CPU_usage_Dump(); - puts( "*** END OF CPU USAGE LIBRARY TEST ***" ); - exit( 0 ); - } - break; - - case 0: - default: - break; - } -} diff --git a/testsuites/libtests/malloctest/init.c b/testsuites/libtests/malloctest/init.c deleted file mode 100644 index 643aa843b8..0000000000 --- a/testsuites/libtests/malloctest/init.c +++ /dev/null @@ -1,114 +0,0 @@ -/* 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-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $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" ); -} diff --git a/testsuites/libtests/malloctest/system.h b/testsuites/libtests/malloctest/system.h deleted file mode 100644 index 7c95130900..0000000000 --- a/testsuites/libtests/malloctest/system.h +++ /dev/null @@ -1,51 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include <tmacros.h> - -/* macros */ - -/* 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 - -#define TASK_STACK_SIZE (RTEMS_MINIMUM_STACK_SIZE*3) - -#define CONFIGURE_EXTRA_TASK_STACKS (10 * RTEMS_MINIMUM_STACK_SIZE) - -#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 */ diff --git a/testsuites/libtests/malloctest/task1.c b/testsuites/libtests/malloctest/task1.c deleted file mode 100644 index aa47bd404b..0000000000 --- a/testsuites/libtests/malloctest/task1.c +++ /dev/null @@ -1,67 +0,0 @@ -/* 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-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $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 ); - } -} diff --git a/testsuites/libtests/monitor/init.c b/testsuites/libtests/monitor/init.c deleted file mode 100644 index 0766c5f8cc..0000000000 --- a/testsuites/libtests/monitor/init.c +++ /dev/null @@ -1,74 +0,0 @@ -/* - * This is a simple test whose only purpose is to start the Monitor - * task. The Monitor task can be used to obtain information about - * a variety of RTEMS objects. - * - * COPYRIGHT (c) 1989-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#define TEST_INIT -#include "system.h" - -#include <rtems/monitor.h> - -rtems_task_priority Priorities[6] = { 0, 1, 1, 3, 4, 5 }; - -rtems_task Task_1_through_5( - rtems_unsigned32 argument -) -{ - rtems_status_code status; - - for ( ; ; ) { - status = rtems_task_wake_after( 100 ); - directive_failed( status, "rtems_task_wake_after" ); - } -} - - - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_status_code status; - - puts( "\n\n*** MONITOR TASK TEST ***" ); - - 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', ' ' ); - - for ( index = 1 ; index <= 5 ; index++ ) { - status = rtems_task_create( - Task_name[ index ], - Priorities[ index ], - RTEMS_MINIMUM_STACK_SIZE * 4, - RTEMS_DEFAULT_MODES, - (index == 5) ? RTEMS_FLOATING_POINT : RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create loop" ); - } - - for ( index = 1 ; index <= 5 ; index++ ) { - status = rtems_task_start( Task_id[ index ], Task_1_through_5, index ); - directive_failed( status, "rtems_task_start loop" ); - } - - rtems_monitor_init( 0 ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/libtests/monitor/system.h b/testsuites/libtests/monitor/system.h deleted file mode 100644 index 75f5771161..0000000000 --- a/testsuites/libtests/monitor/system.h +++ /dev/null @@ -1,58 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include <tmacros.h> - -/* types */ - -struct counters { - rtems_unsigned32 count[6]; -}; - -/* functions */ - -rtems_task Init( - rtems_task_argument argument -); - -rtems_task Task_1_through_5( - rtems_task_argument argument -); - -void Get_all_counters( void ); - -/* configuration information */ - -#define CONFIGURE_SPTEST - -#define CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER -#define CONFIGURE_TEST_NEEDS_CLOCK_DRIVER - -#define CONFIGURE_INIT_TASK_PRIORITY 10 -#define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES -#define CONFIGURE_MAXIMUM_PERIODS 10 - -#define CONFIGURE_RTEMS_INIT_TASKS_TABLE -#define CONFIGURE_EXTRA_TASK_STACKS (3 * RTEMS_MINIMUM_STACK_SIZE) - -#include <confdefs.h> - -/* global variables */ - -TEST_EXTERN rtems_id Task_id[ 6 ]; /* array of task ids */ -TEST_EXTERN rtems_name Task_name[ 6 ]; /* array of task names */ - -/* end of include file */ diff --git a/testsuites/libtests/rtems++/Init.cc b/testsuites/libtests/rtems++/Init.cc deleted file mode 100644 index 4474580bc3..0000000000 --- a/testsuites/libtests/rtems++/Init.cc +++ /dev/null @@ -1,63 +0,0 @@ -/* Init - * - * This routine is the initialization task for this test program. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1997 - * Objective Design Systems Ltd Pty (ODS) - * All rights reserved (R) Objective Design Systems Ltd Pty - * - * COPYRIGHT (c) 1989-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#define TEST_INIT -#include "System.h" - -// make global so it lasts past the Init task's stack's life time -Task1 task_1; - -rtems_task Init(rtems_task_argument ) -{ - puts( "\n\n*** RTEMS++ TEST ***" ); - - printf( "INIT - Task.create() - " ); - task_1.create("TA1 ", 0, RTEMS_MINIMUM_STACK_SIZE); - printf("%s\n", task_1.last_status_string()); - - printf( "INIT - Task.create() - " ); - task_1.create("TA1 ", 10, RTEMS_MINIMUM_STACK_SIZE * 6); - printf("%s\n", task_1.last_status_string()); - - printf( "INIT - Task.create() - " ); - task_1.create("TA1 ", 10, RTEMS_MINIMUM_STACK_SIZE * 6); - printf("%s\n", task_1.last_status_string()); - - printf( "INIT - Task.restart() - " ); - task_1.restart(0); - printf("%s\n", task_1.last_status_string()); - - printf( "INIT - Task.start(0xDEADDEAD) - " ); - task_1.start(0xDEADDEAD); - printf("%s\n", task_1.last_status_string()); - - printf("INIT - Destroy it's self\n"); - - // needs to be in C, no C++ object owns the Init task - rtems_status_code status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} - - - diff --git a/testsuites/libtests/rtems++/System.h b/testsuites/libtests/rtems++/System.h deleted file mode 100644 index 18668d3b9a..0000000000 --- a/testsuites/libtests/rtems++/System.h +++ /dev/null @@ -1,137 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include <tmacros.h> -#include <rtems++/rtemsEvent.h> -#include <rtems++/rtemsMessageQueue.h> -#include <rtems++/rtemsTask.h> -#include <rtems++/rtemsTaskMode.h> - -/* functions */ - -extern "C" -{ - rtems_task Init( - rtems_task_argument argument - ); -} - -rtems_timer_service_routine Delayed_routine( - rtems_id ignored_id, - void *ignored_address -); - -class Task1 - : public rtemsTask -{ - void print_mode(rtems_mode mode, rtems_mode mask); - - void screen1(void); - void screen2(void); - void screen3(void); - void screen4(void); - void screen5(void); - void screen6(void); - -protected: - virtual void body(rtems_task_argument argument); - -public: -}; - -class Task2 - : public rtemsTask -{ - void screen4(void); - -protected: - virtual void body(rtems_task_argument argument); - -public: - Task2(const char* name, - const rtems_task_priority initial_priority, - const rtems_unsigned32 stack_size); -}; - -class Task3 - : public rtemsTask -{ - void screen6(void); - -protected: - virtual void body(rtems_task_argument argument); - -public: - Task3(const char* name, - const rtems_task_priority initial_priority, - const rtems_unsigned32 stack_size); -}; - -class EndTask - : public rtemsTask -{ -protected: - virtual void body(rtems_task_argument argument); - -public: - EndTask(const char* name, - const rtems_task_priority initial_priority, - const rtems_unsigned32 stack_size); -}; - -#if 0 - -// -// Not sure this can be tested in a generic manner, any ideas anyone !! -// - -class Service_routine - : public rtemsInterrupt -{ -}; - -class Io_during_interrupt - : pubic rtemsTimer -{ - -}; - -#endif - -/* configuration information */ - -#define CONFIGURE_SPTEST - -#define CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER -#define CONFIGURE_TEST_NEEDS_CLOCK_DRIVER - -#define CONFIGURE_MAXIMUM_TIMERS 1 -#define CONFIGURE_MAXIMUM_SEMAPHORES 2 -#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES 1 -#define CONFIGURE_MAXIMUM_PARTITIONS 1 -#define CONFIGURE_MAXIMUM_REGIONS 1 -#define CONFIGURE_MAXIMUM_PERIODS 1 -#define CONFIGURE_MAXIMUM_USER_EXTENSIONS 0 -#define CONFIGURE_TICKS_PER_TIMESLICE 100 - -#define CONFIGURE_RTEMS_INIT_TASKS_TABLE -#define CONFIGURE_INIT_TASK_STACK_SIZE (4 * RTEMS_MINIMUM_STACK_SIZE) - -#define CONFIGURE_EXTRA_TASK_STACKS (3 * RTEMS_MINIMUM_STACK_SIZE) - -#include <confdefs.h> - -/* end of include file */ diff --git a/testsuites/libtests/rtems++/Task1.cc b/testsuites/libtests/rtems++/Task1.cc deleted file mode 100644 index 0d334ca977..0000000000 --- a/testsuites/libtests/rtems++/Task1.cc +++ /dev/null @@ -1,682 +0,0 @@ -/* Task1 - * - * This task is the main line for the test. It creates other - * tasks which can create - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1997 - * Objective Design Systems Ltd Pty (ODS) - * All rights reserved (R) Objective Design Systems Ltd Pty - * - * COPYRIGHT (c) 1989-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include <stdlib.h> -#include <string.h> -#include "System.h" - -void Task1::body(rtems_task_argument argument) -{ - rtems_test_pause_and_screen_number(1); - - printf(" * START Task Class test *\n"); - - printf("%s - test argument - ", name_string()); - if (argument != 0xDEADDEAD) - printf("argument is not 0xDEADDEAD\n"); - else - printf("argument matched\n"); - - screen1(); - rtems_test_pause_and_screen_number(2); - - screen2(); - rtems_test_pause_and_screen_number(3); - - screen3(); - rtems_test_pause_and_screen_number(4); - - screen4(); - rtems_test_pause_and_screen_number(5); - - screen5(); - rtems_test_pause_and_screen_number(6); - - screen6(); - - // do not call exit(0) from this thread as this object is static - // the static destructor call delete the task which is calling exit - // so exit never completes - - EndTask end_task("ENDT", (rtems_task_priority) 1, RTEMS_MINIMUM_STACK_SIZE * 6); - end_task.start(0); - - rtemsEvent block_me; - rtems_event_set out; - - block_me.receive(RTEMS_SIGNAL_0, out); - - printf("**** TASK 1 did not block ????\n"); -} - -void Task1::screen1(void) -{ - // create two local task objects to connect to this task - rtemsTask local_task_1 = *this; - rtemsTask local_task_2; - - local_task_2 = *this; - - // check the copy constructor works - printf("%s - copy constructor - ", name_string()); - if (local_task_1.id_is() == id_is()) - printf("local and this id's match\n"); - else - printf("local and this id's do not match\n"); - - printf("%s - copy constructor - ", name_string()); - if (local_task_1.name_is() == name_is()) - printf("local and this name's match\n"); - else - printf("local and this name's do not match\n"); - - // check the copy operator works - printf("%s - copy operator - ", name_string()); - if (local_task_2.id_is() == id_is()) - printf("local and this id's match\n"); - else - printf("local and this id's do not match\n"); - printf("%s - copy operator - ", name_string()); - if (local_task_2.name_is() == name_is()) - printf("local and this name's match\n"); - else - printf("local and this name's do not match\n"); - - // check that the owner of the id cannot delete this task - printf("%s - not owner destroy's task - ", local_task_1.name_string()); - local_task_1.destroy(); - printf("%s\n", local_task_1.last_status_string()); - - // connect to a valid task - printf("%s - connect to a local valid task name - ", local_task_2.name_string()); - local_task_2.connect("TA1 ", RTEMS_SEARCH_ALL_NODES); - printf("%s\n", local_task_2.last_status_string()); - - // connect to an invalid task - printf("%s - connect to an invalid task name - ", local_task_2.name_string()); - local_task_2.connect("BADT", RTEMS_SEARCH_ALL_NODES); - printf("%s\n", local_task_2.last_status_string()); - - // connect to a task an invalid node - printf("%s - connect to a task on an invalid node - ", local_task_2.name_string()); - local_task_2.connect("BADT", 10); - printf("%s\n", local_task_2.last_status_string()); - - // restart this task - printf("%s - restart from a non-owner - ", name_string()); - local_task_1.restart(0); - printf("%s\n", local_task_1.last_status_string()); -} - -void Task1::screen2(void) -{ - // wake after using this object - - printf("%s - wake after 0 secs - ", name_string()); - wake_after(0); - printf("%s\n", last_status_string()); - - printf("%s - wake after 500 msecs - ", name_string()); - wake_after(500000); - printf("%s\n", last_status_string()); - - printf("%s - wake after 5 secs - ", name_string()); - wake_after(5000000); - printf("%s\n", last_status_string()); - - printf("%s - wake when - to do\n", name_string()); - - rtemsTask task_1 = *this; - - // wake after using a connected object - - printf("%s - connected object wake after 0 secs - ", task_1.name_string()); - task_1.wake_after(0); - printf("%s\n", task_1.last_status_string()); - - printf("%s - connected object wake after 500 msecs - ", task_1.name_string()); - task_1.wake_after(500000); - printf("%s\n", task_1.last_status_string()); - - printf("%s - connected object wake after 5 secs - ", task_1.name_string()); - task_1.wake_after(5000000); - printf("%s\n", task_1.last_status_string()); - - printf("%s - connected object wake when - to do\n", task_1.name_string()); - - rtemsTask task_2; - - // wake after using a self object - - printf("%s - self object wake after 0 secs - ", task_2.name_string()); - task_2.wake_after(0); - printf("%s\n", task_2.last_status_string()); - - printf("%s - self object wake after 500 msecs - ", task_2.name_string()); - task_2.wake_after(500000); - printf("%s\n", task_2.last_status_string()); - - printf("%s - self object wake after 5 secs - ", task_2.name_string()); - task_2.wake_after(5000000); - printf("%s\n", task_2.last_status_string()); - - printf("%s - self object wake when - to do\n", task_2.name_string()); - - rtems_task_priority current_priority; - rtems_task_priority priority; - - // priorities with this object - - printf("%s - get priority - ", name_string()); - get_priority(current_priority); - printf("%s, priority is %i\n", last_status_string(), current_priority); - - printf("%s - set priority to 512 - ", name_string()); - set_priority(512); - printf("%s\n", last_status_string()); - - printf("%s - set priority to 25 - ", name_string()); - set_priority(25); - printf("%s\n", last_status_string()); - - printf("%s - set priority to original - ", name_string()); - set_priority(current_priority, priority); - printf("%s, priority was %i\n", last_status_string(), priority); - - // priorities with connected object - - printf("%s - connected object get priority - ", task_1.name_string()); - task_1.get_priority(current_priority); - printf("%s, priority is %i\n", task_1.last_status_string(), current_priority); - - printf("%s - connected object set priority to 512 - ", task_1.name_string()); - task_1.set_priority(512); - printf("%s\n", task_1.last_status_string()); - - printf("%s - connected object set priority to 25 - ", task_1.name_string()); - task_1.set_priority(25); - printf("%s\n", task_1.last_status_string()); - - printf("%s - connected object set priority to original - ", task_1.name_string()); - task_1.set_priority(current_priority, priority); - printf("%s, priority was %i\n", task_1.last_status_string(), priority); - - // priorities with self object - - printf("%s - self object get priority - ", task_2.name_string()); - task_2.get_priority(current_priority); - printf("%s, priority is %i\n", task_2.last_status_string(), current_priority); - - printf("%s - self object set priority to 512 - ", task_2.name_string()); - task_2.set_priority(512); - printf("%s\n", task_2.last_status_string()); - - printf("%s - self object set priority to 25 - ", task_2.name_string()); - task_2.set_priority(25); - printf("%s\n", task_2.last_status_string()); - - printf("%s - self object set priority to original - ", task_2.name_string()); - task_2.set_priority(current_priority, priority); - printf("%s, priority was %i\n", task_2.last_status_string(), priority); - - rtems_unsigned32 current_note; - rtems_unsigned32 note; - - // notepad registers for this object - - printf("%s - get note - ", name_string()); - get_note(0, current_note); - printf("%s, note is %i\n", last_status_string(), current_note); - - printf("%s - get with bad notepad number - ", name_string()); - get_note(100, current_note); - printf("%s, note is %i\n", last_status_string(), current_note); - - printf("%s - set note to 0xDEADBEEF - ", name_string()); - set_note(0, 0xDEADBEEF); - printf("%s\n", last_status_string()); - - printf("%s - get note - ", name_string()); - get_note(0, note); - printf("%s, note is 0x%08X\n", last_status_string(), note); - - printf("%s - set note to original value - ", name_string()); - set_note(0, current_note); - printf("%s\n", last_status_string()); - - // notepad registers for connected object - - printf("%s - connected object get note - ", task_1.name_string()); - task_1.get_note(0, current_note); - printf("%s, notepad is %i\n", task_1.last_status_string(), current_note); - - printf("%s - connected object get with bad notepad number - ", task_1.name_string()); - task_1.get_note(100, current_note); - printf("%s, note is %i\n", task_1.last_status_string(), current_note); - - printf("%s - connected object set note to 0xDEADBEEF - ", task_1.name_string()); - task_1.set_note(0, 0xDEADBEEF); - printf("%s\n", task_1.last_status_string()); - - printf("%s - connected object get note - ", task_1.name_string()); - task_1.get_note(0, note); - printf("%s, note is 0x%08X\n", task_1.last_status_string(), note); - - printf("%s - connected object set note to original value - ", task_1.name_string()); - task_1.set_note(0, current_note); - printf("%s\n", task_1.last_status_string()); - - // notepad registers for self object - - printf("%s - self object get note - ", task_2.name_string()); - task_2.get_note(0, current_note); - printf("%s, note is %i\n", task_2.last_status_string(), current_note); - - printf("%s - self object get with bad notepad number - ", task_2.name_string()); - task_2.get_note(100, current_note); - printf("%s, note is %i\n", task_2.last_status_string(), current_note); - - printf("%s - self object set note to 0xDEADBEEF - ", task_2.name_string()); - task_2.set_note(0, 0xDEADBEEF); - printf("%s\n", task_2.last_status_string()); - - printf("%s - self object get note - ", task_2.name_string()); - task_2.get_note(0, note); - printf("%s, notepad is 0x%08X\n", task_2.last_status_string(), note); - - printf("%s - self object set note to original value - ", task_2.name_string()); - task_2.set_note(0, current_note); - printf("%s\n", task_2.last_status_string()); - - printf(" * END Task Class test *\n"); -} - -#define RTEMS_ALL_MODES (RTEMS_PREEMPT_MASK | \ - RTEMS_TIMESLICE_MASK | \ - RTEMS_ASR_MASK | \ - RTEMS_INTERRUPT_MASK) - -void Task1::screen3(void) -{ - printf(" * START TaskMode Class test *\n"); - - rtemsTask self; - rtemsTaskMode task_mode; - rtems_mode current_mode; - rtems_mode mode; - - printf("%s - get mode - ", self.name_string()); - task_mode.get_mode(current_mode); - printf("%s,\n\t mode is 0x%08X, ", task_mode.last_status_string(), current_mode); - print_mode(current_mode, RTEMS_ALL_MODES); - printf("\n"); - - // PREEMPTION mode control - - printf("%s - get preemption state - ", self.name_string()); - task_mode.get_preemption_state(mode); - printf("%s,\n\t mode is 0x%08X, ", task_mode.last_status_string(), mode); - print_mode(mode, RTEMS_PREEMPT_MASK); - printf("\n"); - - printf("%s - set preemption state to RTEMS_PREEMPT - ", self.name_string()); - task_mode.set_preemption_state(RTEMS_PREEMPT); - task_mode.get_mode(mode); - printf("%s,\n\t mode is 0x%08X, ", task_mode.last_status_string(), mode); - print_mode(mode, RTEMS_ALL_MODES); - printf("\n"); - - printf("%s - set preemption state to RTEMS_NO_PREEMPT - ", self.name_string()); - task_mode.set_preemption_state(RTEMS_NO_PREEMPT); - task_mode.get_mode(mode); - printf("%s,\n\t mode is 0x%08X, ", task_mode.last_status_string(), mode); - print_mode(mode, RTEMS_ALL_MODES); - printf("\n"); - - // TIMESLICE mode control - - printf("%s - get timeslice state - ", self.name_string()); - task_mode.get_timeslice_state(mode); - printf("%s,\n\t mode is 0x%08X, ", task_mode.last_status_string(), mode); - print_mode(mode, RTEMS_TIMESLICE_MASK); - printf("\n"); - - printf("%s - set timeslice state to RTEMS_TIMESLICE - ", self.name_string()); - task_mode.set_timeslice_state(RTEMS_TIMESLICE); - task_mode.get_mode(mode); - printf("%s,\n\t mode is 0x%08X, ", task_mode.last_status_string(), mode); - print_mode(mode, RTEMS_ALL_MODES); - printf("\n"); - - printf("%s - set timeslice state to RTEMS_NO_TIMESLICE - ", self.name_string()); - task_mode.set_timeslice_state(RTEMS_NO_TIMESLICE); - task_mode.get_mode(mode); - printf("%s,\n\t mode is 0x%08X, ", task_mode.last_status_string(), mode); - print_mode(mode, RTEMS_ALL_MODES); - printf("\n"); - - // ASR mode control - - printf("%s - get asr state - ", self.name_string()); - task_mode.get_asr_state(mode); - printf("%s,\n\t mode is 0x%08X, ", task_mode.last_status_string(), mode); - print_mode(mode, RTEMS_ASR_MASK); - printf("\n"); - - printf("%s - set asr state to RTEMS_ASR - ", self.name_string()); - task_mode.set_asr_state(RTEMS_ASR); - task_mode.get_mode(mode); - printf("%s,\n\t mode is 0x%08X, ", task_mode.last_status_string(), mode); - print_mode(mode, RTEMS_ALL_MODES); - printf("\n"); - - printf("%s - set asr state to RTEMS_NO_ASR - ", self.name_string()); - task_mode.set_asr_state(RTEMS_NO_ASR); - task_mode.get_mode(mode); - printf("%s,\n\t mode is 0x%08X, ", task_mode.last_status_string(), mode); - print_mode(mode, RTEMS_ALL_MODES); - printf("\n"); - - // interrupt level control - - rtems_interrupt_level current_level; - rtems_interrupt_level level; - - printf("%s - get current interrupt level - ", self.name_string()); - task_mode.get_interrupt_level(current_level); - printf("%s, level is %i\n", task_mode.last_status_string(), current_level); - - printf("%s - set interrupt level to 102 - ", self.name_string()); - task_mode.set_interrupt_level(102); - printf("%s\n", task_mode.last_status_string()); - - printf("%s - set interrupt level to original level - ", self.name_string()); - task_mode.set_interrupt_level(current_level, level); - printf("%s, level was %i\n", task_mode.last_status_string(), level); - - printf("%s - set mode to original mode - ", self.name_string()); - task_mode.set_mode(current_mode, - RTEMS_PREEMPT_MASK | RTEMS_TIMESLICE_MASK | - RTEMS_ASR_MASK | RTEMS_INTERRUPT_MASK); - task_mode.get_mode(mode); - printf("%s,\n\t mode is 0x%08X, ", task_mode.last_status_string(), mode); - print_mode(mode, RTEMS_ALL_MODES); - printf("\n"); - - printf(" * END TaskMode Class test *\n"); -} - -void Task1::screen4(void) -{ - printf(" * START Event Class test *\n"); - - printf("%s - create task 2 - ", name_string()); - Task2 task_2("TA2", (rtems_task_priority) 9, RTEMS_MINIMUM_STACK_SIZE * 6); - printf("%s\n", task_2.last_status_string()); - - printf("%s - start task 2 - ", name_string()); - task_2.start(0); - printf("%s\n", task_2.last_status_string()); - - printf("%s - construct event connecting to task 2 - ", name_string()); - rtemsEvent event_2("TA2 "); - printf("%s\n", event_2.last_status_string()); - - // wait for task 2 to complete its timeout tests - wake_after(7000000); - - printf("%s - send event signal 0 using the task id - ", name_string()); - event_2.send(task_2.id_is(), RTEMS_SIGNAL_0); - printf("%s\n", event_2.last_status_string()); - - wake_after(1000000); - - printf("%s - send event signal 0 using the task object reference - ", name_string()); - event_2.send(task_2, RTEMS_SIGNAL_0); - printf("%s\n", event_2.last_status_string()); - - wake_after(1000000); - - printf("%s - send event signal 31 using connected id - ", name_string()); - event_2.send(RTEMS_SIGNAL_31); - printf("%s\n", event_2.last_status_string()); - - wake_after(1000000); - - rtemsEvent event_2_2; - - event_2_2.connect("TA2"); - - printf("%s - send event signal 0 and 31 - ", name_string()); - event_2_2.send(task_2, RTEMS_SIGNAL_0 | RTEMS_SIGNAL_31); - printf("%s\n", event_2_2.last_status_string()); - - printf("%s - waiting 5 secs for TA2 to finish\n", name_string()); - wake_after(500000); - - printf(" * END Event Class test *\n"); -} - -void Task1::screen5(void) -{ - printf(" * START Interrupt Class test *\n"); - - printf(" do not know a portable BSP type interrupt test\n"); - - printf(" * END Interrupt Class test *\n"); -} - -void Task1::screen6(void) -{ - printf(" * START MessageQueue Class test *\n"); - - printf("%s - construct message queue 1 with no memory error - ", name_string()); - rtemsMessageQueue mq_1("MQ1", 1000000, 1000); - printf("%s\n", mq_1.last_status_string()); - - printf("%s - construct/create message queue 2 - ", name_string()); - rtemsMessageQueue mq_2("MQ2", 4, 50); - printf("%s\n", mq_2.last_status_string()); - - char *u1 = "normal send"; - char *u2 = "urgent send"; - char in[100]; - rtems_unsigned32 size; - - printf("%s - send u1 to mq_2 - ", name_string()); - mq_2.send(u1, strlen(u1) + 1); - printf("%s\n", mq_2.last_status_string()); - - printf("%s - urgent send u2 to mq_2 - ", name_string()); - mq_2.urgent(u2, strlen(u2) + 1); - printf("%s\n", mq_2.last_status_string()); - - printf("%s - create task 3_1 - ", name_string()); - Task3 task_3_1("TA31", 9, RTEMS_MINIMUM_STACK_SIZE * 6); - printf("%s\n", task_3_1.last_status_string()); - - printf("%s - start task 3_1 - ", name_string()); - task_3_1.start(0); - printf("%s\n", task_3_1.last_status_string()); - - printf("%s - create task 3_2 - ", name_string()); - Task3 task_3_2("TA32", 9, RTEMS_MINIMUM_STACK_SIZE * 6); - printf("%s\n", task_3_2.last_status_string()); - - printf("%s - start task 3_2 - ", name_string()); - task_3_2.start(0); - printf("%s\n", task_3_1.last_status_string()); - - wake_after(1000000); - - printf("%s - receive u2 on mq_2 ...\n", name_string()); fflush(stdout); - mq_2.receive(in, size, 5000000); - printf("%s - %s\n", name_string(), mq_2.last_status_string()); - - if (size == (strlen(u2) + 5)) - { - if ((strncmp(in, task_3_1.name_string(), 4) == 0) && - (strcmp(in + 4, u2) == 0)) - { - printf("%s - message u2 received correctly\n", name_string()); - } - else - { - printf("%s - message u2 received incorrectly, message='%s', size=%i\n", - name_string(), in, size); - } - } - else - printf("%s - message u2 size incorrect, size=%i\n", name_string(), size); - - printf("%s - receive u1 on mq_2 ...\n", name_string()); fflush(stdout); - mq_2.receive(in, size, 5000000); - printf("%s - %s\n", name_string(), mq_2.last_status_string()); - - if (size == (strlen(u1) + 5)) - { - if ((strncmp(in, task_3_2.name_string(), 4) == 0) && - (strcmp(in + 4, u1) == 0)) - { - printf("%s - message u1 received correctly\n", name_string()); - } - else - { - printf("%s - message u1 received incorrectly, message='%s', size=%i\n", - name_string(), in, size); - } - } - else - printf("%s - message u1 size incorrect, size=%i\n", name_string(), size); - - wake_after(3000000); - - char *b1 = "broadcast message"; - rtems_unsigned32 count; - - printf("%s - broadcast send b1 ...\n", name_string()); - mq_2.broadcast(b1, strlen(b1) + 1, count); - printf("%s - mq_2 broadcast send - %s, count=%i\n", - name_string(), mq_2.last_status_string(), count); - - wake_after(1000000); - - printf("%s - receive message b1 on mq_2 from %s...\n", - name_string(), task_3_1.name_string()); fflush(stdout); - mq_2.receive(in, size, 5000000); - printf("%s - %s\n", name_string(), mq_2.last_status_string()); - - if (size == (strlen(b1) + 5)) - { - if ((strncmp(in, task_3_1.name_string(), 4) == 0) && - (strcmp(in + 4, b1) == 0)) - { - printf("%s - message b1 received correctly\n", name_string()); - } - else - { - printf("%s - message b1 received incorrectly, message='%s'\n", - name_string(), in); - } - } - else - printf("%s - message b1 size incorrect, size=%i\n", name_string(), size); - - printf("%s - receive message b1 on mq_2 from %s...\n", - name_string(), task_3_1.name_string()); fflush(stdout); - mq_2.receive(in, size, 5000000); - printf("%s - %s\n", name_string(), mq_2.last_status_string()); - - if (size == (strlen(b1) + 5)) - { - if ((strncmp(in, task_3_2.name_string(), 4) == 0) && - (strcmp(in + 4, b1) == 0)) - { - printf("%s - message b1 received correctly\n", name_string()); - } - else - { - printf("%s - message b1 received incorrectly, message='%s', size=%i\n", - name_string(), in, size); - } - } - else - printf("%s - message b1 size incorrect, size=%i\n", name_string(), size); - - // wait for task 3_1, and 3_2 to complete their timeout tests, will - // start these after getting the broadcast message - wake_after(7000000); - - char *f1 = "flush message"; - - printf("%s - send f1 to mq_2 - ", name_string()); - mq_2.send(f1, strlen(f1) + 1); - printf("%s\n", mq_2.last_status_string()); - - printf("%s - send f1 to mq_2 - ", name_string()); - mq_2.send(f1, strlen(f1) + 1); - printf("%s\n", mq_2.last_status_string()); - - printf("%s - send f1 to mq_2 - ", name_string()); - mq_2.send(f1, strlen(f1) + 1); - printf("%s\n", mq_2.last_status_string()); - - printf("%s - flush mq_2 - ", name_string()); - mq_2.flush(size); - printf("%s, flushed=%i\n", mq_2.last_status_string(), size); - - printf(" * END MessageQueue Class test *\n"); -} - -void Task1::print_mode(rtems_mode mode, rtems_mode mask) -{ - rtemsTaskMode task_mode; - if (mask & RTEMS_PREEMPT_MASK) - printf("RTEMS_%sPREEMPT ", - task_mode.preemption_set(mode) ? "" : "NO_"); - if (mask & RTEMS_TIMESLICE_MASK) - printf("RTEMS_%sTIMESLICE ", - task_mode.preemption_set(mode) ? "" : "NO_"); - if (mask & RTEMS_ASR_MASK) - printf("RTEMS_%sASR ", - task_mode.asr_set(mode) ? "" : "NO_"); - if (mask & RTEMS_INTERRUPT_MASK) - printf("INTMASK=%i", - mode & RTEMS_INTERRUPT_MASK); -} - -EndTask::EndTask(const char* name, - const rtems_task_priority initial_priority, - const rtems_unsigned32 stack_size) - : rtemsTask(name, initial_priority, stack_size, RTEMS_NO_PREEMPT) -{ -} - -void EndTask::body(rtems_task_argument) -{ - printf("*** END OF RTEMS++ TEST ***\n"); - exit(0); -} - diff --git a/testsuites/libtests/rtems++/Task2.cc b/testsuites/libtests/rtems++/Task2.cc deleted file mode 100644 index afddbca67d..0000000000 --- a/testsuites/libtests/rtems++/Task2.cc +++ /dev/null @@ -1,81 +0,0 @@ -/* Task_2 - * - * This routine serves as a test task. Its only purpose is to generate the - * error where a semaphore is deleted while a task is waiting for it. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include "System.h" - -Task2::Task2(const char* name, - const rtems_task_priority initial_priority, - const rtems_unsigned32 stack_size) - : rtemsTask(name, initial_priority, stack_size, RTEMS_NO_PREEMPT) -{ -} - -void Task2::body(rtems_task_argument ) -{ - screen4(); - - printf("%s - destroy itself\n", name_string()); - destroy(); -} - -void Task2::screen4() -{ - rtemsEvent event; - - // block waiting for any event - rtems_event_set out; - - printf("%s - event no wait - ", name_string()); - event.receive(RTEMS_SIGNAL_0, out, 0, rtemsEvent::no_wait); - printf("%s\n", event.last_status_string()); - - printf("%s - event 5 secs timeout - ", name_string()); fflush(stdout); - event.receive(RTEMS_SIGNAL_0, out, 5000000); - printf("%s\n", event.last_status_string()); - - // send using task id - printf("%s - event wait forever for signal 0 from TA1 ....\n", name_string()); - event.receive(RTEMS_SIGNAL_0, out); - printf("%s - %s, signals out are 0x%08X\n", name_string(), event.last_status_string(), out); - - // send using task object reference - printf("%s - event wait forever for signal 0 from TA1 ....\n", name_string()); - event.receive(RTEMS_SIGNAL_0, out); - printf("%s - %s, signals out are 0x%08X\n", name_string(), event.last_status_string(), out); - - printf("%s - event wait forever for signal 31 from TA1 ....\n", name_string()); - event.receive(RTEMS_SIGNAL_31, out); - printf("%s - %s, signals out are 0x%08X\n", name_string(), event.last_status_string(), out); - - printf("%s - event wait forever for signal 0 and 31 from TA1 ....\n", name_string()); - event.receive(RTEMS_SIGNAL_0 | RTEMS_SIGNAL_31, out, 0, rtemsEvent::wait, rtemsEvent::all); - printf("%s - %s, signals out are 0x%08X\n", name_string(), event.last_status_string(), out); - - printf("%s - send event signal 1 - ", name_string()); - event.send(RTEMS_SIGNAL_1); - printf("%s\n", event.last_status_string()); - - printf("%s - event wait forever for signal 1 from TA2 - ", name_string()); - event.receive(RTEMS_SIGNAL_1, out, 0, rtemsEvent::wait, rtemsEvent::all); - printf("%s, signals out are 0x%08X\n", event.last_status_string(), out); -} - - diff --git a/testsuites/libtests/rtems++/Task3.cc b/testsuites/libtests/rtems++/Task3.cc deleted file mode 100644 index 73ddb3b6b2..0000000000 --- a/testsuites/libtests/rtems++/Task3.cc +++ /dev/null @@ -1,81 +0,0 @@ -/* Task_3 - * - * This routine serves as a test task. Loopback the messages and test - * timeouts - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include "System.h" - -Task3::Task3(const char* name, - const rtems_task_priority initial_priority, - const rtems_unsigned32 stack_size) - : rtemsTask(name, initial_priority, stack_size, RTEMS_NO_PREEMPT) -{ -} - -void Task3::body(rtems_task_argument ) -{ - screen6(); - - printf("%s - destroy itself\n", name_string()); - destroy(); -} - -void Task3::screen6() -{ - rtemsMessageQueue mq_2("MQ2"); - printf("%s - construction connect mq_2 - %s\n", name_string(), mq_2.last_status_string()); - - if (mq_2.successful()) - { - char in[100]; - char out[100]; - rtems_unsigned32 size; - bool loopback = true; - - while (loopback) - { - printf("%s - loopback from mq_2 to mq_2 ...\n", name_string()); fflush(stdout); - - mq_2.receive(in, size); - printf("%s - mq_2 receive - %s, size=%i, message string size=%i\n", - name_string(), mq_2.last_status_string(), size, (int) strlen(in)); - if (mq_2.successful()) - { - if (size > (100 - 5)) - printf("%s - size to large\n", name_string()); - else - { - strcpy(out, name_string()); - strcpy(out + 4, in); - - printf("%s - loopback to mq_2 - ", name_string()); - mq_2.send(out, strlen(out) + 1); - printf("%s\n", mq_2.last_status_string()); - } - - if (strcmp(in, "broadcast message") == 0) - loopback = false; - else - wake_after(1500000); - } - } - } -} - - diff --git a/testsuites/libtests/rtems++/rtems++.doc b/testsuites/libtests/rtems++/rtems++.doc deleted file mode 100644 index 5834b4077d..0000000000 --- a/testsuites/libtests/rtems++/rtems++.doc +++ /dev/null @@ -1,29 +0,0 @@ -# -# $Id$ -# -# COPYRIGHT (c) 1997 -# Objective Design Systems Ltd Pty (ODS) -# All rights reserved (R) Objective Design Systems Ltd Pty -# -# The license and distribution terms for this file may be found in the -# file LICENSE in this distribution or at -# http://www.OARcorp.com/rtems/license.html. -# - -The file describes the directives and concepts tested by this test set. - -test set name: rtems++ - -classes: - rtemsTask, rtemsTaskMode, rtemsEvent, rtemsMessageQueue - -concepts: - - a. Verify each class tested can be constructed using each of the constructors. - - b. Verify each class can be an owner of an object id if capable. - - c. Verify each class can connect to an existing object id if capable. - - d. Verify the operation of each method of each class. - diff --git a/testsuites/libtests/rtems++/rtems++.scn b/testsuites/libtests/rtems++/rtems++.scn deleted file mode 100644 index 2b3682d6b6..0000000000 --- a/testsuites/libtests/rtems++/rtems++.scn +++ /dev/null @@ -1,161 +0,0 @@ -*** RTEMS++ TEST *** -INIT - Task.create() - RTEMS[19] invalid thread priority -INIT - Task.create() - RTEMS[00] successful completion -INIT - Task.create() - RTEMS[16] illegal on calling thread -INIT - Task.restart() - RTEMS[14] thread is in wrong state -INIT - Task.start(0xDEADDEAD) - RTEMS[00] successful completion -<pause - screen 1> - * START Task Class test * -TA1 - test argument - argument matched -TA1 - copy constructor - local and this id's match -TA1 - copy constructor - local and this name's match -TA1 - copy operator - local and this id's match -TA1 - copy operator - local and this name's match -TA1 - not owner destroy's task - RTEMS[23] not owner of resource -TA1 - connect to a local valid task name - RTEMS[00] successful completion -TA1 - connect to an invalid task name - RTEMS[03] invalid object name -SELF - connect to a task on an invalid node - RTEMS[21] invalid node id -TA1 - restart from a non-owner - RTEMS[23] not owner of resource -<pause - screen 2> -TA1 - wake after 0 secs - RTEMS[00] successful completion -TA1 - wake after 500 msecs - RTEMS[00] successful completion -TA1 - wake after 5 secs - RTEMS[00] successful completion -TA1 - wake when - to do -TA1 - connected object wake after 0 secs - RTEMS[00] successful completion -TA1 - connected object wake after 500 msecs - RTEMS[00] successful completion -TA1 - connected object wake after 5 secs - RTEMS[00] successful completion -TA1 - connected object wake when - to do -SELF - self object wake after 0 secs - RTEMS[00] successful completion -SELF - self object wake after 500 msecs - RTEMS[00] successful completion -SELF - self object wake after 5 secs - RTEMS[00] successful completion -SELF - self object wake when - to do -TA1 - get priority - RTEMS[00] successful completion, priority is 10 -TA1 - set priority to 512 - RTEMS[19] invalid thread priority -TA1 - set priority to 25 - RTEMS[00] successful completion -TA1 - set priority to original - RTEMS[00] successful completion, priority was 25 -TA1 - connected object get priority - RTEMS[00] successful completion, priority is 10 -TA1 - connected object set priority to 512 - RTEMS[19] invalid thread priority -TA1 - connected object set priority to 25 - RTEMS[00] successful completion -TA1 - connected object set priority to original - RTEMS[00] successful completion, priority was 25 -SELF - self object get priority - RTEMS[00] successful completion, priority is 10 -SELF - self object set priority to 512 - RTEMS[19] invalid thread priority -SELF - self object set priority to 25 - RTEMS[00] successful completion -SELF - self object set priority to original - RTEMS[00] successful completion, priority was 25 -TA1 - get note - RTEMS[00] successful completion, note is 0 -TA1 - get with bad notepad number - RTEMS[10] number was invalid, note is 0 -TA1 - set note to 0xDEADBEEF - RTEMS[00] successful completion -TA1 - get note - RTEMS[00] successful completion, note is 0xDEADBEEF -TA1 - set note to original value - RTEMS[00] successful completion -TA1 - connected object get note - RTEMS[00] successful completion, notepad is 0 -TA1 - connected object get with bad notepad number - RTEMS[10] number was invalid, note is 0 -TA1 - connected object set note to 0xDEADBEEF - RTEMS[00] successful completion -TA1 - connected object get note - RTEMS[00] successful completion, note is 0xDEADBEEF -TA1 - connected object set note to original value - RTEMS[00] successful completion -SELF - self object get note - RTEMS[00] successful completion, note is 0 -SELF - self object get with bad notepad number - RTEMS[10] number was invalid, note is 0 -SELF - self object set note to 0xDEADBEEF - RTEMS[00] successful completion -SELF - self object get note - RTEMS[00] successful completion, notepad is 0xDEADBEEF -SELF - self object set note to original value - RTEMS[00] successful completion - * END Task Class test * -<pause - screen 3> - * START TaskMode Class test * -SELF - get mode - RTEMS[00] successful completion, - mode is 0x00000100, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_NO_ASR INTMASK=0 -SELF - get preemption state - RTEMS[00] successful completion, - mode is 0x00000100, RTEMS_NO_PREEMPT -SELF - set preemption state to RTEMS_PREEMPT - RTEMS[00] successful completion, - mode is 0x00000000, RTEMS_PREEMPT RTEMS_TIMESLICE RTEMS_NO_ASR INTMASK=0 -SELF - set preemption state to RTEMS_NO_PREEMPT - RTEMS[00] successful completion, - mode is 0x00000100, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_NO_ASR INTMASK=0 -SELF - get timeslice state - RTEMS[00] successful completion, - mode is 0x00000000, RTEMS_TIMESLICE -SELF - set timeslice state to RTEMS_TIMESLICE - RTEMS[00] successful completion, - mode is 0x00000300, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_NO_ASR INTMASK=0 -SELF - set timeslice state to RTEMS_NO_TIMESLICE - RTEMS[00] successful completion, - mode is 0x00000100, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_NO_ASR INTMASK=0 -SELF - get asr state - RTEMS[00] successful completion, - mode is 0x00000000, RTEMS_NO_ASR -SELF - set asr state to RTEMS_ASR - RTEMS[00] successful completion, - mode is 0x00000100, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_NO_ASR INTMASK=0 -SELF - set asr state to RTEMS_NO_ASR - RTEMS[00] successful completion, - mode is 0x00000500, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_ASR INTMASK=0 -SELF - get current interrupt level - RTEMS[00] successful completion, level is 0 -SELF - set interrupt level to 102 - RTEMS[00] successful completion -SELF - set interrupt level to original level - RTEMS[00] successful completion, level was 0 -SELF - set mode to original mode - RTEMS[00] successful completion, - mode is 0x00000100, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_NO_ASR INTMASK=0 - * END TaskMode Class test * -<pause - screen 4> - * START Event Class test * -TA1 - create task 2 - RTEMS[00] successful completion -TA1 - start task 2 - RTEMS[00] successful completion -TA1 - construct event connecting to task 2 - RTEMS[00] successful completion -TA2 - event no wait - RTEMS[13] request not satisfied -TA2 - event 5 secs timeout - RTEMS[06] timed out waiting -TA2 - event wait forever for signal 0 from TA1 .... -TA1 - send event signal 0 using the task id - RTEMS[00] successful completion -TA2 - RTEMS[00] successful completion, signals out are 0x00000001 -TA2 - event wait forever for signal 0 from TA1 .... -TA1 - send event signal 0 using the task object reference - RTEMS[00] successful completion -TA2 - RTEMS[00] successful completion, signals out are 0x00000001 -TA2 - event wait forever for signal 31 from TA1 .... -TA1 - send event signal 31 using connected id - RTEMS[00] successful completion -TA2 - RTEMS[00] successful completion, signals out are 0x80000000 -TA2 - event wait forever for signal 0 and 31 from TA1 .... -TA1 - send event signal 0 and 31 - RTEMS[00] successful completion -TA1 - waiting 5 secs for TA2 to finish -TA2 - RTEMS[00] successful completion, signals out are 0x80000001 -TA2 - send event signal 1 - RTEMS[00] successful completion -TA2 - event wait forever for signal 1 from TA2 - RTEMS[00] successful completion, signals out are 0x00000002 -TA2 - destory itself - * END Event Class test * -<pause - screen 5> - * START Interrupt Class test * - do not know a portable BSP type interrupt test - * END Interrupt Class test * -<pause - screen 6> - * START MessageQueue Class test * -TA1 - construct message queue 1 with no memory error - RTEMS[05] too many -TA1 - construct/create message queue 2 - RTEMS[00] successful completion -TA1 - send u1 to mq_2 - RTEMS[00] successful completion -TA1 - urgent send u2 to mq_2 - RTEMS[00] successful completion -TA1 - create task 3_1 - RTEMS[00] successful completion -TA1 - start task 3_1 - RTEMS[00] successful completion -TA1 - create task 3_2 - RTEMS[00] successful completion -TA1 - start task 3_2 - RTEMS[00] successful completion -TA31 - construction connect mq_2 - RTEMS[00] successful completion -TA31 - loopback from mq_2 to mq_2 ... -TA31 - mq_2 receive - RTEMS[00] successful completion, size=12, message string size=11 -TA31 - loopback to mq_2 - RTEMS[00] successful completion -TA32 - construction connect mq_2 - RTEMS[00] successful completion -TA32 - loopback from mq_2 to mq_2 ... -TA32 - mq_2 receive - RTEMS[00] successful completion, size=12, message string size=11 -TA32 - loopback to mq_2 - RTEMS[00] successful completion -TA1 - receive u2 on mq_2 ... -TA1 - RTEMS[00] successful completion -TA1 - message u2 received correctly -TA1 - receive u1 on mq_2 ... -TA1 - RTEMS[00] successful completion -TA1 - message u1 received correctly -TA31 - loopback from mq_2 to mq_2 ... -TA32 - loopback from mq_2 to mq_2 ... -TA1 - broadcast send b1 ... -TA1 - mq_2 broadcast send - RTEMS[00] successful completion, count=2 -TA31 - mq_2 receive - RTEMS[00] successful completion, size=18, message string size=17 -TA31 - loopback to mq_2 - RTEMS[00] successful completion -TA31 - destory itself -TA32 - mq_2 receive - RTEMS[00] successful completion, size=18, message string size=17 -TA32 - loopback to mq_2 - RTEMS[00] successful completion -TA32 - destory itself -TA1 - receive message b1 on mq_2 from TA31... -TA1 - RTEMS[00] successful completion -TA1 - message b1 received correctly -TA1 - receive message b1 on mq_2 from TA31... -TA1 - RTEMS[00] successful completion -TA1 - message b1 received correctly -TA1 - send f1 to mq_2 - RTEMS[00] successful completion -TA1 - send f1 to mq_2 - RTEMS[00] successful completion -TA1 - send f1 to mq_2 - RTEMS[00] successful completion -TA1 - flush mq_2 - RTEMS[00] successful completion, flushed=3 - * END MessageQueue Class test * -<pause - screen 7> diff --git a/testsuites/libtests/rtmonuse/getall.c b/testsuites/libtests/rtmonuse/getall.c deleted file mode 100644 index 85f6470d1c..0000000000 --- a/testsuites/libtests/rtmonuse/getall.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Get_all_counters - * - * This routine allows TA5 to atomically obtain the iteration counters. - * - * Input parameters: NONE - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include "system.h" - -void Get_all_counters() -{ - rtems_mode previous_mode; - rtems_status_code status; - - status = rtems_task_mode( - RTEMS_NO_PREEMPT, - RTEMS_PREEMPT_MASK, - &previous_mode - ); - directive_failed( status, "rtems_task_mode to RTEMS_NO_PREEMPT" ); - - Temporary_count = Count; - Count.count[ 1 ] = 0; - Count.count[ 2 ] = 0; - Count.count[ 3 ] = 0; - Count.count[ 4 ] = 0; - Count.count[ 5 ] = 0; - - status = rtems_task_mode( RTEMS_PREEMPT, RTEMS_PREEMPT_MASK, &previous_mode ); - directive_failed( status, "rtems_task_mode to RTEMS_PREEMPT" ); -} diff --git a/testsuites/libtests/rtmonuse/init.c b/testsuites/libtests/rtmonuse/init.c deleted file mode 100644 index c599df3c5a..0000000000 --- a/testsuites/libtests/rtmonuse/init.c +++ /dev/null @@ -1,71 +0,0 @@ -/* 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-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#define TEST_INIT -#include "system.h" - -#include "rtmonuse.h" - -rtems_task Init( - rtems_task_argument argument -) -{ - rtems_unsigned32 index; - rtems_status_code status; - - puts( "\n\n*** RATE MONOTONIC PERIOD STATISTICS TEST ***" ); - Period_usage_Initialize(); - - 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', ' ' ); - - for ( index = 1 ; index <= 5 ; index++ ) { - status = rtems_task_create( - Task_name[ index ], - Priorities[ index ], - RTEMS_MINIMUM_STACK_SIZE * 4, - RTEMS_DEFAULT_MODES, - (index == 5) ? RTEMS_FLOATING_POINT : RTEMS_DEFAULT_ATTRIBUTES, - &Task_id[ index ] - ); - directive_failed( status, "rtems_task_create loop" ); - } - - for ( index = 1 ; index <= 5 ; index++ ) { - status = rtems_task_start( Task_id[ index ], Task_1_through_5, index ); - directive_failed( status, "rtems_task_start loop" ); - } - - Count.count[ 1 ] = 0; - Count.count[ 2 ] = 0; - Count.count[ 3 ] = 0; - Count.count[ 4 ] = 0; - Count.count[ 5 ] = 0; - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/libtests/rtmonuse/rtmonuse.scn b/testsuites/libtests/rtmonuse/rtmonuse.scn deleted file mode 100644 index bb4e8814da..0000000000 --- a/testsuites/libtests/rtmonuse/rtmonuse.scn +++ /dev/null @@ -1,27 +0,0 @@ -*** TEST 20 *** -TA1 - rtems_rate_monotonic_create id = 0x28010001 -TA1 - rtems_rate_monotonic_ident id = 0x28010001 -TA1 - (0x28010001) period 2 -TA2 - rtems_rate_monotonic_create id = 0x28010002 -TA2 - rtems_rate_monotonic_ident id = 0x28010002 -TA2 - (0x28010002) period 2 -TA3 - rtems_rate_monotonic_create id = 0x28010003 -TA3 - rtems_rate_monotonic_ident id = 0x28010003 -TA3 - (0x28010003) period 2 -TA4 - rtems_rate_monotonic_create id = 0x28010004 -TA4 - rtems_rate_monotonic_ident id = 0x28010004 -TA4 - (0x28010004) period 2 -TA5 - rtems_rate_monotonic_create id = 0x28010005 -TA5 - rtems_rate_monotonic_ident id = 0x28010005 -TA5 - (0x28010005) period 100 -TA5 - PERIODS CHECK OK (1) -TA5 - PERIODS CHECK OK (2) -TA5 - PERIODS CHECK OK (3) -TA5 - PERIODS CHECK OK (4) -TA5 - PERIODS CHECK OK (5) -TA5 - PERIODS CHECK OK (6) -TA5 - PERIODS CHECK OK (7) -TA5 - PERIODS CHECK OK (8) -TA5 - PERIODS CHECK OK (9) -TA5 - PERIODS CHECK OK (10) -*** END OF TEST 20 *** diff --git a/testsuites/libtests/rtmonuse/system.h b/testsuites/libtests/rtmonuse/system.h deleted file mode 100644 index b10fb1193b..0000000000 --- a/testsuites/libtests/rtmonuse/system.h +++ /dev/null @@ -1,62 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include <tmacros.h> - -/* types */ - -struct counters { - rtems_unsigned32 count[6]; -}; - -/* functions */ - -rtems_task Init( - rtems_task_argument argument -); - -rtems_task Task_1_through_5( - rtems_task_argument argument -); - -void Get_all_counters( void ); - -/* configuration information */ - -#define CONFIGURE_SPTEST - -#define CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER -#define CONFIGURE_TEST_NEEDS_CLOCK_DRIVER - -#define CONFIGURE_INIT_TASK_PRIORITY 10 -#define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_DEFAULT_MODES -#define CONFIGURE_MAXIMUM_PERIODS 10 - -#define CONFIGURE_RTEMS_INIT_TASKS_TABLE - -#define CONFIGURE_EXTRA_TASK_STACKS (15 * RTEMS_MINIMUM_STACK_SIZE) -#include <confdefs.h> - -/* global variables */ - -TEST_EXTERN rtems_id Task_id[ 6 ]; /* array of task ids */ -TEST_EXTERN rtems_name Task_name[ 6 ]; /* array of task names */ - -TEST_EXTERN struct counters Count; /* iteration counters */ -TEST_EXTERN struct counters Temporary_count; -extern rtems_task_priority Priorities[ 6 ]; - -/* end of include file */ diff --git a/testsuites/libtests/rtmonuse/task1.c b/testsuites/libtests/rtmonuse/task1.c deleted file mode 100644 index 92b22178af..0000000000 --- a/testsuites/libtests/rtmonuse/task1.c +++ /dev/null @@ -1,124 +0,0 @@ -/* Task_1_through_5 - * - * This routine serves as a test task for the period capabilities of the - * Rate Monotonic Manager. - * - * Input parameters: - * argument - task argument - * - * Output parameters: NONE - * - * COPYRIGHT (c) 1989-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include "system.h" - -#include <cpuuse.h> -#include "rtmonuse.h" - -rtems_unsigned32 Periods[6] = { 0, 2, 2, 2, 2, 100 }; -rtems_unsigned32 Iterations[6] = { 0, 50, 50, 50, 50, 1 }; -rtems_task_priority Priorities[6] = { 0, 1, 1, 3, 4, 5 }; - -rtems_task Task_1_through_5( - rtems_unsigned32 argument -) -{ - rtems_id rmid; - rtems_id test_rmid; - rtems_unsigned32 index; - rtems_unsigned32 pass; - rtems_unsigned32 failed; - rtems_status_code status; - - status = rtems_rate_monotonic_create( argument, &rmid ); - directive_failed( status, "rtems_rate_monotonic_create" ); - put_name( Task_name[ argument ], FALSE ); - printf( "- rtems_rate_monotonic_create id = 0x%08x\n", rmid ); - - status = rtems_rate_monotonic_ident( argument, &test_rmid ); - directive_failed( status, "rtems_rate_monotonic_ident" ); - put_name( Task_name[ argument ], FALSE ); - printf( "- rtems_rate_monotonic_ident id = 0x%08x\n", test_rmid ); - - if ( rmid != test_rmid ) { - printf( "RMID's DO NOT MATCH (0x%x and 0x%x)\n", rmid, test_rmid ); - exit( 0 ); - } - - put_name( Task_name[ argument ], FALSE ); - printf( "- (0x%08x) period %d\n", rmid, Periods[ argument ] ); - - status = rtems_task_wake_after( 2 ); - directive_failed( status, "rtems_task_wake_after" ); - - switch ( argument ) { - case 1: - case 2: - case 3: - case 4: - while ( FOREVER ) { - Period_usage_Update( rmid ); - - status = rtems_rate_monotonic_period( rmid, Periods[ argument ] ); - directive_failed( status, "rtems_rate_monotonic_period" ); - Count.count[ argument ]++; - } - break; - case 5: - pass = 0; - failed = 0; - - status = rtems_rate_monotonic_period( rmid, Periods[ argument ] ); - directive_failed( status, "rtems_rate_monotonic_period 1 of TA5" ); - - Get_all_counters(); - - while ( FOREVER ) { - Period_usage_Update( rmid ); - - status = rtems_rate_monotonic_period( rmid, Periods[ argument ] ); - directive_failed( status, "rtems_rate_monotonic_period 2 of TA5" ); - - Get_all_counters(); - - for( index = 1 ; index <= 4 ; index++ ) { - if ( Temporary_count.count[ index ] != Iterations[ index ] ) { - puts_nocr( "FAIL -- " ); - put_name ( Task_name[ index ], FALSE ); - printf ( " Actual=%d, Expected=%d\n", - Temporary_count.count[ index ], - Iterations[ index ] - ); - failed += 1; - } - } - - if ( failed == 5 ) - exit( 0 ); - - pass += 1; - - printf( "TA5 - PERIODS CHECK OK (%d)\n", pass ); - - fflush( stdout ); - - if ( pass == 10 ) { - puts( "*** END OF RATE MONOTONIC PERIOD STATISTICS TEST ***" ); - CPU_usage_Dump(); - Period_usage_Dump(); - exit( 0 ); - } - - } - break; - } -} diff --git a/testsuites/libtests/stackchk/blow.c b/testsuites/libtests/stackchk/blow.c deleted file mode 100644 index 0be35308c8..0000000000 --- a/testsuites/libtests/stackchk/blow.c +++ /dev/null @@ -1,49 +0,0 @@ -/* 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-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include <rtems.h> - -void b() {} - -void blow_stack( void ) -{ - volatile unsigned32 *low, *high; - unsigned char *area; - -b(); - /* - * Destroy the first and last 16 bytes of our stack... Hope it - * does not cause problems :) - */ - - area = (unsigned char *)_Thread_Executing->Start.Initial_stack.area; - - low = (volatile unsigned32 *) (area + HEAP_OVERHEAD); - high = (volatile unsigned32 *) - (area + _Thread_Executing->Start.Initial_stack.size - 16); - - - low[0] = 0x11111111; - low[1] = 0x22222222; - low[2] = 0x33333333; - low[3] = 0x44444444; - - high[0] = 0x55555555; - high[1] = 0x66666666; - high[2] = 0x77777777; - high[3] = 0x88888888; - -} diff --git a/testsuites/libtests/stackchk/init.c b/testsuites/libtests/stackchk/init.c deleted file mode 100644 index f4aab85d95..0000000000 --- a/testsuites/libtests/stackchk/init.c +++ /dev/null @@ -1,86 +0,0 @@ -/* 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-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $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*** TEST STACK CHECKER ***" ); - - 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', ' ' ); - - 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_start( Task_id[ 1 ], Task_1_through_3, 0 ); - directive_failed( status, "rtems_task_start of TA1" ); - - status = rtems_task_start( Task_id[ 2 ], Task_1_through_3, 0 ); - directive_failed( status, "rtems_task_start of TA2" ); - - status = rtems_task_start( Task_id[ 3 ], Task_1_through_3, 0 ); - directive_failed( status, "rtems_task_start of TA3" ); - - status = rtems_task_delete( RTEMS_SELF ); - directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); -} diff --git a/testsuites/libtests/stackchk/stackchk.scn b/testsuites/libtests/stackchk/stackchk.scn deleted file mode 100644 index 84a5c5e342..0000000000 --- a/testsuites/libtests/stackchk/stackchk.scn +++ /dev/null @@ -1,9 +0,0 @@ -*** TEST STACK CHECKER *** -TA1 - rtems_clock_get - 09:00:00 12/31/1988 -TA2 - rtems_clock_get - 09:00:00 12/31/1988 -TA3 - rtems_clock_get - 09:00:00 12/31/1988 -TA1 - rtems_clock_get - 09:00:05 12/31/1988 -TA1 - rtems_clock_get - 09:00:10 12/31/1988 -TA2 - rtems_clock_get - 09:00:10 12/31/1988 -TA1 - rtems_clock_get - 09:00:15 12/31/1988 ----> error indictation diff --git a/testsuites/libtests/stackchk/system.h b/testsuites/libtests/stackchk/system.h deleted file mode 100644 index a656d24e26..0000000000 --- a/testsuites/libtests/stackchk/system.h +++ /dev/null @@ -1,53 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * COPYRIGHT (c) 1989-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $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_3( - 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 - -#define CONFIGURE_RTEMS_INIT_TASKS_TABLE - -#define STACK_CHECKER_ON - -#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 */ diff --git a/testsuites/libtests/stackchk/task1.c b/testsuites/libtests/stackchk/task1.c deleted file mode 100644 index 14cc35ae35..0000000000 --- a/testsuites/libtests/stackchk/task1.c +++ /dev/null @@ -1,44 +0,0 @@ -/* 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-1998. - * On-Line Applications Research Corporation (OAR). - * Copyright assigned to U.S. Government, 1994. - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include "system.h" - -rtems_task Task_1_through_3( - rtems_task_argument argument -) -{ - rtems_id tid; - rtems_time_of_day time; - rtems_status_code status; - - status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid ); - directive_failed( status, "rtems_task_ident" ); - - while( FOREVER ) { - status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time ); - directive_failed( status, "rtems_clock_get" ); - - if ( time.second >= 15 && tid == Task_id[ 1 ] ) { - blow_stack(); - } - - put_name( Task_name[ task_number( tid ) ], FALSE ); - print_time( " - rtems_clock_get - ", &time, "\n" ); - - status = rtems_task_wake_after( task_number( tid ) * 5 * TICKS_PER_SECOND ); - directive_failed( status, "rtems_task_wake_after" ); - } -} diff --git a/testsuites/libtests/termios/README b/testsuites/libtests/termios/README deleted file mode 100644 index 6991d80309..0000000000 --- a/testsuites/libtests/termios/README +++ /dev/null @@ -1,45 +0,0 @@ -# -# $Id$ -# - -These tests are brought to you by the letter `q'. - -VMIN=0, VTIME=0 - Each letter you type should produce a line of output. - The `count' should be quite large, since (as you correctly - pointed out) the read is non-blocking. The time should be - the interval between typing characters. - Type a `q' to finish the test. -VMIN=0, VTIME=20 - Again, each letter should produce a line of output. The - `count' should be much smaller -- the read is non-blocking - but has a timeout of 2 seconds, so the count should be about - half the `interval'. - Type a `q' to finish the test. -VMIN=5, VTIME=0 - A line should be produced for every 5 characters typed. The - count should be 1. This is a blocking read. - Type a `q' as the first character of a group of 5 to finish - the test. -VMIN=5, VTIME=20 - Type a character. Two seconds later a line should be printed. - Count should be 1. Type a character, and another within 2 -seconds. - Two seconds after last character (or right after the 5th -character) - a line should be printed. - Type a `q' as the first character of a group to finish the test. - -Clear??? - -Also, when testing the cooked mode input, try typing some tabs -and/or control characters and make sure that you can backspace over -them properly. - ---- -Eric Norum -eric@skatter.usask.ca -Saskatchewan Accelerator Laboratory -University of Saskatchewan -Saskatoon, Canada. - diff --git a/testsuites/libtests/termios/init.c b/testsuites/libtests/termios/init.c deleted file mode 100644 index 96c7e0934e..0000000000 --- a/testsuites/libtests/termios/init.c +++ /dev/null @@ -1,143 +0,0 @@ -/* - * RTEMS configuration/initialization - * - * This program may be distributed and used for any purpose. - * I ask only that you: - * 1. Leave this author information intact. - * 2. Document any changes you make. - * - * W. Eric Norum - * Saskatchewan Accelerator Laboratory - * University of Saskatchewan - * Saskatoon, Saskatchewan, CANADA - * eric@skatter.usask.ca - * - * $Id$ - */ - -#include <bsp.h> - -#define CONFIGURE_TEST_NEEDS_CLOCK_DRIVER -#define CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER - -#define CONFIGURE_RTEMS_INIT_TASKS_TABLE - -#define CONFIGURE_RTEMS_INIT_TASKS_TABLE - -#define CONFIGURE_MAXIMUM_SEMAPHORES 20 -#define CONFIGURE_MAXIMUM_TIMERS 5 -#define CONFIGURE_MAXIMUM_PERIODS 1 - -#define CONFIGURE_MICROSECONDS_PER_TICK 1000 - -#define CONFIGURE_INIT -rtems_task Init (rtems_task_argument argument); - -#include <confdefs.h> - -#include <stdio.h> -#include <unistd.h> -#include <termios.h> -#include <errno.h> -#include <string.h> - -/* - * Test raw (ICANON=0) input - */ -static void -testRawInput (int vmin, int vtime) -{ - int i; - struct termios old, new; - rtems_interval ticksPerSecond, then, now; - unsigned int msec; - unsigned long count; - int nread; - unsigned char cbuf[100]; - - printf ("*** Raw input VMIN=%d VTIME=%d ***\n", vmin, vtime); - rtems_clock_get (RTEMS_CLOCK_GET_TICKS_PER_SECOND, &ticksPerSecond); - i = tcgetattr (fileno (stdin), &old); - if (i < 0) { - printf ("tcgetattr failed: %s\n", strerror (errno)); - return; - } - new = old; - new.c_lflag &= ~(ICANON|ECHO|ECHONL|ECHOK|ECHOE|ECHOPRT|ECHOCTL); - new.c_cc[VMIN] = vmin; - new.c_cc[VTIME] = vtime; - i = tcsetattr (fileno (stdin), TCSANOW, &new); - if (i < 0) { - printf ("tcsetattr failed: %s\n", strerror (errno)); - return; - } - do { - rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &then); - count = 0; - for (;;) { - nread = read (fileno (stdin), cbuf, sizeof cbuf); - if (nread < 0) { - printf ("Read error: %s\n", strerror (errno)); - goto out; - } - count++; - if (nread != 0) - break; - } - rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &now); - msec = (now - then) * 1000 / ticksPerSecond; - printf ("Count:%-10lu Interval:%3u.%3.3d Char:", - count, msec / 1000, msec % 1000); - for (i = 0 ; i < nread ; i++) - printf (" %2.2x", cbuf[i]); - printf ("\n"); - } while (cbuf[0] != 'q'); - out: - i = tcsetattr (fileno (stdin), TCSANOW, &old); - if (i < 0) - printf ("tcsetattr failed: %s\n", strerror (errno)); - printf ("*** End of Raw input VMIN=%d VTIME=%d ***\n", vmin, vtime); -} - -/* - * RTEMS Startup Task - */ -rtems_task -Init (rtems_task_argument ignored) -{ - int i, j; - - printf( "\n\n*** HELLO WORLD TEST ***\n" ); - printf( "Hello World\n" ); - printf( "*** END OF HELLO WORLD TEST ***\n" ); - - printf( "\n\ntype 'q' to exit raw input tests\n\n" ); - - for (;;) { - /* - * Test blocking, line-oriented input - */ - do { - printf (">>> "); - fflush (stdout); - i = scanf (" %d", &j); - printf ("Return: %d Value: %d\n", i, j); - } while (i != 0); - - /* - * Consume what scanf rejected - */ - while ((i = getchar ()) != '\n') - if (i == EOF) - break; - - /* - * Test character-oriented input - */ - testRawInput (0, 0); - testRawInput (0, 20); - testRawInput (5, 0); - testRawInput (5, 20); - } - exit (1); -} |