File indexing completed on 2025-05-11 08:24:50
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 #if !defined(OPERATION_COUNT)
0030 #define OPERATION_COUNT 100
0031 #endif
0032
0033 #ifdef HAVE_CONFIG_H
0034 #include "config.h"
0035 #endif
0036
0037 #include <bsp.h>
0038 #include <tmacros.h>
0039 #include <timesys.h>
0040 #include "test_support.h"
0041
0042 const char rtems_test_name[] = "TIME TEST 30";
0043
0044 rtems_id barrier[ OPERATION_COUNT ];
0045
0046 rtems_task Init(
0047 rtems_task_argument argument
0048 );
0049
0050 static void benchmark_barrier_create(
0051 int iteration,
0052 void *argument
0053 )
0054 {
0055 rtems_status_code status;
0056
0057 status = rtems_barrier_create(
0058 iteration + 1,
0059 RTEMS_LOCAL | RTEMS_FIFO,
0060 2,
0061 &barrier[iteration]
0062 );
0063 directive_failed(status, "rtems_barrier_create");
0064 }
0065
0066 static void benchmark_barrier_ident(
0067 int iteration,
0068 void *argument
0069 )
0070 {
0071 rtems_status_code status;
0072 rtems_id id;
0073
0074 status = rtems_barrier_ident( iteration+1, &id );
0075 directive_failed(status, "rtems_barrier_ident");
0076 }
0077
0078 static void benchmark_barrier_delete(
0079 int iteration,
0080 void *argument
0081 )
0082 {
0083 rtems_status_code status;
0084
0085 status = rtems_barrier_delete( barrier[iteration] );
0086 directive_failed(status, "rtems_barrier_delete");
0087 }
0088
0089 rtems_task Init(
0090 rtems_task_argument argument
0091 )
0092 {
0093 TEST_BEGIN();
0094
0095 rtems_time_test_measure_operation(
0096 "rtems_barrier_create: only case",
0097 benchmark_barrier_create,
0098 NULL,
0099 OPERATION_COUNT,
0100 0
0101 );
0102
0103 rtems_time_test_measure_operation(
0104 "rtems_barrier_ident: only case",
0105 benchmark_barrier_ident,
0106 NULL,
0107 OPERATION_COUNT,
0108 0
0109 );
0110
0111 rtems_time_test_measure_operation(
0112 "rtems_barrier_delete: only case",
0113 benchmark_barrier_delete,
0114 NULL,
0115 OPERATION_COUNT,
0116 0
0117 );
0118
0119 TEST_END();
0120
0121 rtems_test_exit(0);
0122 }
0123
0124
0125
0126 #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
0127 #define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
0128
0129 #define CONFIGURE_MAXIMUM_TASKS 1
0130 #define CONFIGURE_MAXIMUM_BARRIERS OPERATION_COUNT
0131 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
0132
0133 #define CONFIGURE_INIT
0134
0135 #include <rtems/confdefs.h>
0136