File indexing completed on 2025-05-11 08:24:46
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 #include <tmacros.h>
0034 #include "test_support.h"
0035
0036 const char rtems_test_name[] = "SP 72";
0037
0038
0039 rtems_task Init(rtems_task_argument argument);
0040 rtems_task Test_task(rtems_task_argument argument);
0041
0042 rtems_id Semaphore_id;
0043
0044 rtems_task Test_task(
0045 rtems_task_argument argument
0046 )
0047 {
0048 rtems_status_code status;
0049
0050 puts( "Task - rtems_semaphore_obtain - wait w/timeout " );
0051 status = rtems_semaphore_obtain(
0052 Semaphore_id,
0053 RTEMS_DEFAULT_OPTIONS,
0054 rtems_clock_get_ticks_per_second() * 10
0055 );
0056 directive_failed( status, "obtain" );
0057
0058 }
0059
0060 rtems_task Init(
0061 rtems_task_argument argument
0062 )
0063 {
0064 rtems_status_code status;
0065 rtems_id task_id;
0066
0067 TEST_BEGIN();
0068
0069 status = rtems_semaphore_create(
0070 rtems_build_name( 'S', 'M', '1', ' ' ),
0071 0,
0072 RTEMS_PRIORITY,
0073 0,
0074 &Semaphore_id
0075 );
0076 directive_failed( status, "rtems_semaphore_create - priority blocking" );
0077
0078 status = rtems_task_create(
0079 rtems_build_name( 'T', 'E', 'S', 'T' ),
0080 1,
0081 RTEMS_MINIMUM_STACK_SIZE,
0082 RTEMS_DEFAULT_MODES,
0083 RTEMS_DEFAULT_ATTRIBUTES,
0084 &task_id
0085 );
0086 directive_failed( status, "rtems_task_create" );
0087
0088 status = rtems_task_start( task_id, Test_task, 0 );
0089 directive_failed( status, "rtems_task_start" );
0090
0091 puts( "Init - sleep 1 second" );
0092 status = rtems_task_wake_after( rtems_clock_get_ticks_per_second() );
0093 directive_failed( status, "rtems_task_wake_after" );
0094
0095 puts( "Init - rtems_task_delete - to extract priority w/timeout" );
0096 status = rtems_task_delete( task_id );
0097 directive_failed( status, "rtems_task_delete" );
0098
0099 TEST_END();
0100
0101 rtems_test_exit(0);
0102 }
0103
0104
0105
0106 #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
0107 #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
0108
0109 #define CONFIGURE_MAXIMUM_TASKS 2
0110 #define CONFIGURE_MAXIMUM_SEMAPHORES 1
0111 #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
0112
0113 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
0114
0115 #define CONFIGURE_INIT
0116
0117 #include <rtems/confdefs.h>
0118