File indexing completed on 2025-05-11 08:24:49
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #ifdef HAVE_CONFIG_H
0030 #include "config.h"
0031 #endif
0032
0033 #define CONFIGURE_INIT
0034 #include "system.h"
0035
0036 const char rtems_test_name[] = "SP TASK ERROR 02";
0037
0038 rtems_task Init(
0039 rtems_task_argument argument
0040 )
0041 {
0042 rtems_time_of_day time;
0043 rtems_status_code status;
0044
0045 TEST_BEGIN();
0046
0047
0048 status = rtems_task_wake_when( NULL );
0049 fatal_directive_status(
0050 status,
0051 RTEMS_NOT_DEFINED,
0052 "rtems_task_wake_when NULL param"
0053 );
0054 puts( "TA1 - rtems_task_wake_when - RTEMS_INVALID_ADDRESS" );
0055
0056
0057 status = rtems_task_wake_when( &time );
0058 if ( status == RTEMS_SUCCESSFUL ) {
0059 puts(
0060 "TA1 - rtems_task_wake_when - RTEMS_NOT_DEFINED -- "
0061 "DID BSP SET THE TIME OF DAY?"
0062 );
0063 } else {
0064 fatal_directive_status(
0065 status,
0066 RTEMS_NOT_DEFINED,
0067 "rtems_task_wake_when before clock is set"
0068 );
0069 puts( "TA1 - rtems_task_wake_when - RTEMS_NOT_DEFINED" );
0070 }
0071
0072
0073 build_time( &time, 2, 5, 1988, 8, 30, 45, 0 );
0074 print_time( "TA1 - rtems_clock_set - ", &time, "" );
0075 status = rtems_clock_set( &time );
0076 directive_failed( status, "rtems_clock_set successful" );
0077 puts( " - RTEMS_SUCCESSFUL" );
0078
0079 build_time(
0080 &time,
0081 2, 5, 1988, 8, 30, 48,
0082 rtems_clock_get_ticks_per_second() + 1
0083 );
0084 time.second += 3;
0085 puts( "TA1 - rtems_task_wake_when - TICKINVALID - sleep about 3 seconds" );
0086
0087
0088 status = rtems_task_wake_when( NULL );
0089 fatal_directive_status(
0090 status,
0091 RTEMS_INVALID_ADDRESS,
0092 "rtems_task_wake_when with NULL"
0093 );
0094 puts( "TA1 - rtems_task_wake_when - RTEMS_INVALID_ADDRESS" );
0095
0096
0097 status = rtems_task_wake_when( &time );
0098 directive_failed(
0099 status,
0100 "rtems_task_wake_when with invalid ticks per second"
0101 );
0102 puts( "TA1 - rtems_task_wake_when - TICKINVALID - woke up RTEMS_SUCCESSFUL" );
0103
0104 build_time( &time, 2, 5, 1961, 8, 30, 48, 0 );
0105 print_time( "TA1 - rtems_task_wake_when - ", &time, "" );
0106 status = rtems_task_wake_when( &time );
0107 fatal_directive_status(
0108 status,
0109 RTEMS_INVALID_CLOCK,
0110 "rtems_task_wake_when with invalid year"
0111 );
0112 puts( " - RTEMS_INVALID_CLOCK" );
0113
0114 build_time( &time, 2, 5, 1988, 25, 30, 48, 0 );
0115 print_time( "TA1 - rtems_task_wake_when - ", &time, "" );
0116 status = rtems_task_wake_when( &time );
0117 fatal_directive_status(
0118 status,
0119 RTEMS_INVALID_CLOCK,
0120 "rtems_task_wake_when with invalid hour"
0121 );
0122 puts( " - RTEMS_INVALID_CLOCK" );
0123
0124 rtems_clock_get_tod( &time );
0125 print_time( "TA1 - current time - ", &time, "\n" );
0126
0127 time.month = 1;
0128 print_time( "TA1 - rtems_task_wake_when - ", &time, "" );
0129 status = rtems_task_wake_when( &time );
0130 fatal_directive_status(
0131 status,
0132 RTEMS_INVALID_CLOCK,
0133 "rtems_task_wake_when before current time"
0134 );
0135 puts( " - RTEMS_INVALID_CLOCK" );
0136
0137 TEST_END();
0138 }