File indexing completed on 2025-05-11 08:24:51
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
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051 #ifdef HAVE_CONFIG_H
0052 #include "config.h"
0053 #endif
0054
0055 #include <rtems.h>
0056
0057 #include <rtems/test.h>
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080 static rtems_name BuildNameMacro( char c1, char c2, char c3, char c4 )
0081 {
0082 return rtems_build_name( c1, c2, c3, c4 );
0083 }
0084
0085 #undef rtems_build_name
0086
0087 static rtems_name BuildName( char c1, char c2, char c3, char c4 )
0088 {
0089 return rtems_build_name( c1, c2, c3, c4 );
0090 }
0091
0092
0093
0094
0095
0096 static void RtemsObjectValObject_Action_0( void )
0097 {
0098 static const uint16_t chars[] = { 0, 255, 257 };
0099 rtems_name accumulated_name;
0100 size_t i;
0101 size_t j;
0102 size_t k;
0103 size_t r;
0104
0105 accumulated_name = 0;
0106
0107 for ( i = 0; i < RTEMS_ARRAY_SIZE( chars ); ++i ) {
0108 for ( j = 0; j < RTEMS_ARRAY_SIZE( chars ); ++j ) {
0109 for ( k = 0; k < RTEMS_ARRAY_SIZE( chars ); ++k ) {
0110 for ( r = 0; r < RTEMS_ARRAY_SIZE( chars ); ++r ) {
0111 unsigned char u1;
0112 unsigned char u2;
0113 unsigned char u3;
0114 unsigned char u4;
0115 signed char s1;
0116 signed char s2;
0117 signed char s3;
0118 signed char s4;
0119 rtems_name expected_name;
0120 rtems_name actual_name;
0121
0122 expected_name = ( chars[ i ] % 256 ) * UINT32_C( 16777216 ) +
0123 ( chars[ j ] % 256 ) * UINT32_C( 65536 ) +
0124 ( chars[ k ] % 256 ) * UINT32_C( 256 ) +
0125 ( chars[ r ] % 256 );
0126
0127 u1 = (unsigned char) chars[ i ];
0128 u2 = (unsigned char) chars[ j ];
0129 u3 = (unsigned char) chars[ k ];
0130 u4 = (unsigned char) chars[ r ];
0131 actual_name = rtems_build_name( u1, u2, u3, u4 );
0132 T_quiet_eq_u32( actual_name, expected_name )
0133 accumulated_name += actual_name;
0134
0135 s1 = (signed char) u1;
0136 s2 = (signed char) u2;
0137 s3 = (signed char) u3;
0138 s4 = (signed char) u4;
0139 actual_name = rtems_build_name( s1, s2, s3, s4 );
0140 T_quiet_eq_u32( actual_name, expected_name )
0141 accumulated_name += actual_name;
0142
0143 actual_name = BuildName(
0144 chars[ i ],
0145 chars[ j ],
0146 chars[ k ],
0147 chars[ r ]
0148 );
0149 T_quiet_eq_u32( actual_name, expected_name );
0150
0151 actual_name = BuildNameMacro(
0152 chars[ i ],
0153 chars[ j ],
0154 chars[ k ],
0155 chars[ r ]
0156 );
0157 T_quiet_eq_u32( actual_name, expected_name );
0158
0159 accumulated_name += actual_name;
0160 }
0161 }
0162 }
0163 }
0164
0165
0166
0167
0168 T_step_eq_u32( 0, accumulated_name, 0x51515100 );
0169 }
0170
0171
0172
0173
0174 static void RtemsObjectValObject_Action_1( void )
0175 {
0176 uint32_t node;
0177
0178 node = rtems_object_get_local_node();
0179
0180
0181
0182
0183 T_step_eq_u32( 1, node, 1 );
0184 }
0185
0186
0187
0188
0189 T_TEST_CASE( RtemsObjectValObject )
0190 {
0191 T_plan( 2 );
0192
0193 RtemsObjectValObject_Action_0();
0194 RtemsObjectValObject_Action_1();
0195 }
0196
0197