15 #ifdef SAFESTRINGS_TEST_APP
22 void error_handler(
int errnoValue,
const char* errnoStr,
const char* file,
const char*
function,
int line )
24 last_errno = errnoValue;
31 #define _RESET_ERRNO( ) last_errno = 0
33 #define _EXPECTED_ERRNO( errnoVal ) if ( last_errno != errnoVal ) printf("errno value of %d not found: %d %s(%d)\n",errnoVal,last_errno,__FILE__,__LINE__)
34 #define _EXPECTED_LAST_ERRNO( errnoVal ) _EXPECTED_ERRNO( errnoVal )
35 #define _EXPECTED_RETURN( value, function ) if ( function != value ) printf("expected value not received: %s(%d)\n", __FILE__,__LINE__)
37 #define _EXPECTED_STRING( str, value ) if ( !strcmp( str, value ) ) printf("strings do not match: %s(%d)\n", __FILE__, __LINE__)
38 #define _EXPECTED_VALUE( val, value ) if ( val != value ) printf("values do not match: %s(%d)\n", __FILE__, __LINE__ )
41 void dumb_memset(
void*
buf,
char val,
size_t bytes )
51 bool strcmp(
const char* str1,
const char* str2 )
53 while ( *str1 && *str2 )
61 return ( !*str1 && !*str2 );
66 #define _RESET_STRINGS( ) dumb_memset( strSource, 0, 15 );\
67 dumb_memset( strDest, 0, 15 );
102 _EXPECTED_RETURN( 0,
strcpy_s( strDest,
"Hello World" ) );
103 _EXPECTED_LAST_ERRNO( 0 );
104 _EXPECTED_STRING( strDest,
"Hello World" );
107 _EXPECTED_RETURN( 0,
strcpy_s( strDest, 15,
"Hello World" ) );
108 _EXPECTED_LAST_ERRNO( 0 );
109 _EXPECTED_STRING( strDest,
"Hello World" );
114 _EXPECTED_RETURN( ERANGE,
strcpy_s( strDest,
"Hello World, this is a test" ) );
115 _EXPECTED_ERRNO( ERANGE );
116 _EXPECTED_VALUE( strDest[ 0 ], NULL );
119 _EXPECTED_RETURN( ERANGE,
strcpy_s( strDest, 15,
"Hello World, this is a test" ) );
120 _EXPECTED_ERRNO( ERANGE );
121 _EXPECTED_VALUE( strDest[ 0 ], NULL );
125 _EXPECTED_RETURN( EINVAL,
strcpy_s( strDest, NULL ) );
126 _EXPECTED_ERRNO( EINVAL );
129 _EXPECTED_RETURN( EINVAL,
strcpy_s( strDest, 15, NULL ) );
130 _EXPECTED_ERRNO( EINVAL );
134 _EXPECTED_RETURN( EINVAL,
strcpy_s( NULL, 15,
"Hello World" ) );
135 _EXPECTED_ERRNO( EINVAL );
139 _EXPECTED_RETURN( EINVAL,
strcpy_s( NULL, 15, NULL ) );
140 _EXPECTED_ERRNO( EINVAL );
144 _EXPECTED_RETURN( ERANGE,
strcpy_s( strDest, 0,
"Hello World") );
145 _EXPECTED_ERRNO( ERANGE );
149 _EXPECTED_RETURN( 0,
strcpy_s( strDest,
"Hello World th" ) );
150 _EXPECTED_LAST_ERRNO( ERANGE );
152 #undef _RESET_STRINGS
155 void test_strcat_s( )
157 #define _RESET_STRINGS( ) dumb_memset( strSource, 0, 15 );\
158 dumb_memset( strDest, 0, 15 );
160 char strSource[ 15 ];
186 _EXPECTED_RETURN( 0,
strcpy_s( strDest,
"Hello " ) );
187 _EXPECTED_LAST_ERRNO( 0 );
188 _EXPECTED_RETURN( 0,
strcat_s( strDest,
"World" ) );
189 _EXPECTED_LAST_ERRNO( 0 );
192 _EXPECTED_RETURN( 0,
strcpy_s( strDest, 15,
"Hello " ) );
193 _EXPECTED_LAST_ERRNO( 0 );
194 _EXPECTED_RETURN( 0,
strcat_s( strDest, 15,
"World" ) );
195 _EXPECTED_LAST_ERRNO( 0 );
199 _EXPECTED_RETURN( 0,
strcpy_s( strDest,
"World" ) );
200 _EXPECTED_LAST_ERRNO( 0);
201 _EXPECTED_RETURN( EINVAL,
strcat_s( strDest, NULL ) );
202 _EXPECTED_ERRNO( EINVAL );
203 _EXPECTED_VALUE( strDest[ 0 ], NULL );
206 _EXPECTED_RETURN( 0,
strcpy_s( strDest,
"World" ) );
207 _EXPECTED_LAST_ERRNO( EINVAL );
208 _EXPECTED_RETURN( EINVAL,
strcat_s( strDest, 15, NULL ) );
209 _EXPECTED_ERRNO( EINVAL );
210 _EXPECTED_VALUE( strDest[ 0 ], NULL );
214 _EXPECTED_RETURN( 0,
strcpy_s( strSource,
"Hello " ) );
215 _EXPECTED_LAST_ERRNO( EINVAL );
216 _EXPECTED_RETURN( EINVAL,
strcat_s( NULL, 15, strSource ) );
217 _EXPECTED_ERRNO( EINVAL );
221 _EXPECTED_RETURN( 0,
strcpy_s( strDest, 15,
"Hello " ) );
222 _EXPECTED_LAST_ERRNO( EINVAL );
223 _EXPECTED_RETURN( ERANGE,
strcat_s( strDest, 0,
"World" ) );
224 _EXPECTED_ERRNO( ERANGE );
228 _EXPECTED_RETURN( 0,
strcpy_s( strDest,
"Hello " ) );
229 _EXPECTED_LAST_ERRNO( ERANGE );
230 _EXPECTED_RETURN( 0,
strcpy_s( strDest,
"World th" ) );
231 _EXPECTED_LAST_ERRNO( ERANGE );
234 _EXPECTED_RETURN( 0,
strcpy_s( strDest, 15,
"Hello " ) );
235 _EXPECTED_LAST_ERRNO( ERANGE );
236 _EXPECTED_RETURN( 0,
strcpy_s( strDest, 15,
"World th" ) );
237 _EXPECTED_LAST_ERRNO( ERANGE );
239 #undef _RESET_STRINGS
242 int main(
int argc,
char* argv[])
GLenum GLuint GLenum GLsizei const GLchar * buf
int main(int argc, char *argv[])