File indexing completed on 2025-05-11 08:24:41
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 <timesys.h>
0034 #include <rtems/btimer.h>
0035 #include "test_support.h"
0036
0037 #include <pthread.h>
0038
0039 const char rtems_test_name[] = "PSXTMSLEEP 02";
0040
0041
0042 void *POSIX_Init(void *argument);
0043 void *Middle(void *argument);
0044 void *Low(void *argument);
0045
0046 void *Low(
0047 void *argument
0048 )
0049 {
0050 benchmark_timer_t end_time;
0051
0052 end_time = benchmark_timer_read();
0053
0054 put_time(
0055 "sleep: blocking",
0056 end_time,
0057 OPERATION_COUNT,
0058 0,
0059 0
0060 );
0061
0062 TEST_END();
0063
0064 rtems_test_exit( 0 );
0065 return NULL;
0066 }
0067
0068 void *Middle(
0069 void *argument
0070 )
0071 {
0072 sleep(1);
0073 return NULL;
0074 }
0075
0076 void *POSIX_Init(
0077 void *argument
0078 )
0079 {
0080 int i;
0081 int status;
0082 pthread_t threadId;
0083
0084 TEST_BEGIN();
0085
0086 for ( i=0 ; i < OPERATION_COUNT - 1 ; i++ ) {
0087 status = pthread_create( &threadId, NULL, Middle, NULL );
0088 rtems_test_assert( !status );
0089 }
0090
0091 status = pthread_create( &threadId, NULL, Low, NULL );
0092 rtems_test_assert( !status );
0093
0094
0095 benchmark_timer_initialize();
0096 sleep(1);
0097 return NULL;
0098 }
0099
0100
0101
0102 #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
0103 #define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
0104
0105 #define CONFIGURE_MAXIMUM_POSIX_THREADS OPERATION_COUNT + 2
0106 #define CONFIGURE_POSIX_INIT_THREAD_TABLE
0107
0108 #define CONFIGURE_INIT
0109
0110 #include <rtems/confdefs.h>
0111