mirror of
https://github.com/yuzu-emu/mbedtls
synced 2024-11-24 14:28:31 +00:00
selftest: allow excluding a subset of the tests
E.g. "selftest -x timing" runs all the self-tests except timing.
This commit is contained in:
parent
c82fbb4e14
commit
ff79d27f5c
1 changed files with 37 additions and 12 deletions
|
@ -263,8 +263,10 @@ int main( int argc, char *argv[] )
|
||||||
#if defined(MBEDTLS_SELF_TEST)
|
#if defined(MBEDTLS_SELF_TEST)
|
||||||
const selftest_t *test;
|
const selftest_t *test;
|
||||||
#endif /* MBEDTLS_SELF_TEST */
|
#endif /* MBEDTLS_SELF_TEST */
|
||||||
char **argp = argc >= 1 ? argv + 1 : argv;
|
char **argp;
|
||||||
int v, suites_tested = 0, suites_failed = 0;
|
int v = 1; /* v=1 for verbose mode */
|
||||||
|
int exclude_mode = 0;
|
||||||
|
int suites_tested = 0, suites_failed = 0;
|
||||||
#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && defined(MBEDTLS_SELF_TEST)
|
#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && defined(MBEDTLS_SELF_TEST)
|
||||||
unsigned char buf[1000000];
|
unsigned char buf[1000000];
|
||||||
#endif
|
#endif
|
||||||
|
@ -291,17 +293,24 @@ int main( int argc, char *argv[] )
|
||||||
mbedtls_exit( MBEDTLS_EXIT_FAILURE );
|
mbedtls_exit( MBEDTLS_EXIT_FAILURE );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( argc >= 2 && ( strcmp( argv[1], "--quiet" ) == 0 ||
|
for( argp = argv + ( argc >= 1 ? 1 : argc ); *argp != NULL; ++argp )
|
||||||
strcmp( argv[1], "-q" ) == 0 ) )
|
|
||||||
{
|
{
|
||||||
v = 0;
|
if( strcmp( *argp, "--quiet" ) == 0 ||
|
||||||
++argp;
|
strcmp( *argp, "-q" ) == 0 )
|
||||||
|
{
|
||||||
|
v = 0;
|
||||||
|
}
|
||||||
|
else if( strcmp( *argp, "--exclude" ) == 0 ||
|
||||||
|
strcmp( *argp, "-x" ) == 0 )
|
||||||
|
{
|
||||||
|
exclude_mode = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
if( v != 0 )
|
||||||
v = 1;
|
|
||||||
mbedtls_printf( "\n" );
|
mbedtls_printf( "\n" );
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(MBEDTLS_SELF_TEST)
|
#if defined(MBEDTLS_SELF_TEST)
|
||||||
|
|
||||||
|
@ -309,7 +318,7 @@ int main( int argc, char *argv[] )
|
||||||
mbedtls_memory_buffer_alloc_init( buf, sizeof(buf) );
|
mbedtls_memory_buffer_alloc_init( buf, sizeof(buf) );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if( *argp != NULL )
|
if( *argp != NULL && exclude_mode == 0 )
|
||||||
{
|
{
|
||||||
/* Run the specified tests */
|
/* Run the specified tests */
|
||||||
for( ; *argp != NULL; argp++ )
|
for( ; *argp != NULL; argp++ )
|
||||||
|
@ -335,9 +344,24 @@ int main( int argc, char *argv[] )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Run all the tests */
|
/* Run all the tests except excluded ones */
|
||||||
for( test = selftests; test->name != NULL; test++ )
|
for( test = selftests; test->name != NULL; test++ )
|
||||||
{
|
{
|
||||||
|
if( exclude_mode )
|
||||||
|
{
|
||||||
|
char **excluded;
|
||||||
|
for( excluded = argp; *excluded != NULL; ++excluded )
|
||||||
|
{
|
||||||
|
if( !strcmp( *excluded, test->name ) )
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if( *excluded )
|
||||||
|
{
|
||||||
|
if( v )
|
||||||
|
mbedtls_printf( " Skip: %s\n", test->name );
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
if( test->function( v ) != 0 )
|
if( test->function( v ) != 0 )
|
||||||
{
|
{
|
||||||
suites_failed++;
|
suites_failed++;
|
||||||
|
@ -347,6 +371,7 @@ int main( int argc, char *argv[] )
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
(void) exclude_mode;
|
||||||
mbedtls_printf( " MBEDTLS_SELF_TEST not defined.\n" );
|
mbedtls_printf( " MBEDTLS_SELF_TEST not defined.\n" );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue