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 #if !defined(OPERATION_COUNT)
0029 #define OPERATION_COUNT 100
0030 #endif
0031
0032 #ifdef HAVE_CONFIG_H
0033 #include "config.h"
0034 #endif
0035
0036 #include <pthread.h>
0037 #include <tmacros.h>
0038 #include <timesys.h>
0039 #include <rtems/btimer.h>
0040 #include "test_support.h"
0041
0042 const char rtems_test_name[] = "PSXTMBARRIERATTR01";
0043
0044
0045 static void *POSIX_Init(void *argument);
0046
0047 static pthread_barrierattr_t attr;
0048
0049 static void benchmark_create_barrierattr(void)
0050 {
0051 benchmark_timer_t end_time;
0052 int status;
0053
0054 benchmark_timer_initialize();
0055 status = pthread_barrierattr_init( &attr );
0056 end_time = benchmark_timer_read();
0057 rtems_test_assert( status == 0 );
0058
0059 put_time(
0060 "pthread_barrierattr_init: only case",
0061 end_time,
0062 1,
0063 0,
0064 0
0065 );
0066
0067 }
0068
0069 static void benchmark_barrierattr_setpshared(void)
0070 {
0071 benchmark_timer_t end_time;
0072 int status;
0073
0074 benchmark_timer_initialize();
0075 status = pthread_barrierattr_setpshared( &attr, PTHREAD_PROCESS_SHARED );
0076 end_time = benchmark_timer_read();
0077 rtems_test_assert( status == 0 );
0078
0079 put_time(
0080 "pthread_barrierattr_setpshared: only case",
0081 end_time,
0082 1,
0083 0,
0084 0
0085 );
0086
0087 }
0088
0089 static void benchmark_barrierattr_getpshared(void)
0090 {
0091 benchmark_timer_t end_time;
0092 int status;
0093 int pshared;
0094
0095 benchmark_timer_initialize();
0096 status = pthread_barrierattr_getpshared( &attr, &pshared );
0097 end_time = benchmark_timer_read();
0098 rtems_test_assert( status == 0 );
0099 rtems_test_assert( pshared == PTHREAD_PROCESS_SHARED );
0100
0101 put_time(
0102 "pthread_barrierattr_getpshared: only case",
0103 end_time,
0104 1,
0105 0,
0106 0
0107 );
0108
0109 }
0110
0111 static void benchmark_destroy_barrierattr(void)
0112 {
0113 benchmark_timer_t end_time;
0114 int status;
0115
0116 benchmark_timer_initialize();
0117 status = pthread_barrierattr_destroy( &attr );
0118 end_time = benchmark_timer_read();
0119 rtems_test_assert( status == 0 );
0120
0121 put_time(
0122 "pthread_barrierattr_destroy: only case",
0123 end_time,
0124 1,
0125 0,
0126 0
0127 );
0128
0129 }
0130
0131 static void *POSIX_Init(
0132 void *argument
0133 )
0134 {
0135
0136 TEST_BEGIN();
0137
0138 benchmark_create_barrierattr();
0139 benchmark_barrierattr_setpshared();
0140 benchmark_barrierattr_getpshared();
0141 benchmark_destroy_barrierattr();
0142
0143 TEST_END();
0144 rtems_test_exit(0);
0145 }
0146
0147
0148
0149 #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
0150 #define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
0151
0152 #define CONFIGURE_MAXIMUM_POSIX_THREADS 1
0153 #define CONFIGURE_POSIX_INIT_THREAD_TABLE
0154
0155 #define CONFIGURE_INIT
0156
0157 #include <rtems/confdefs.h>
0158