Fix minor style issues in test framework

This commit is contained in:
Janos Follath 2016-10-05 10:57:49 +01:00 committed by Simon Butcher
parent 33388669ec
commit 2d9c46767a
2 changed files with 48 additions and 32 deletions

View File

@ -34,6 +34,9 @@ typedef UINT32 uint32_t;
#include <string.h> #include <string.h>
#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
#include <unistd.h>
#endif
/*----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
/* Constants */ /* Constants */
@ -102,6 +105,43 @@ static int test_errors = 0;
/*----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
/* Helper Functions */ /* Helper Functions */
#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
static int redirect_output( FILE** out_stream, const char* path )
{
int stdout_fd = dup( fileno( *out_stream ) );
if( stdout_fd == -1 )
{
return -1;
}
fflush( *out_stream );
fclose( *out_stream );
*out_stream = fopen( path, "w" );
if( *out_stream == NULL )
{
return -1;
}
return stdout_fd;
}
static int restore_output( FILE** out_stream, int old_fd )
{
fflush( *out_stream );
fclose( *out_stream );
*out_stream = fdopen( old_fd, "w" );
if( *out_stream == NULL )
{
return -1;
}
return 0;
}
#endif /* __unix__ || __APPLE__ __MACH__ */
static int unhexify( unsigned char *obuf, const char *ibuf ) static int unhexify( unsigned char *obuf, const char *ibuf )
{ {
unsigned char c, c2; unsigned char c, c2;

View File

@ -79,12 +79,6 @@ SUITE_POST_DEP
/*----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
/* Test dispatch code */ /* Test dispatch code */
#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
#include <unistd.h>
#endif
#include <stdio.h>
int dep_check( char *str ) int dep_check( char *str )
{ {
if( str == NULL ) if( str == NULL )
@ -257,7 +251,6 @@ int main(int argc, const char *argv[])
const char **test_files = NULL; const char **test_files = NULL;
int testfile_count = 0; int testfile_count = 0;
int option_verbose = 0; int option_verbose = 0;
int tests_stdout;
/* Other Local variables */ /* Other Local variables */
int arg_index = 1; int arg_index = 1;
@ -268,6 +261,7 @@ int main(int argc, const char *argv[])
char buf[5000]; char buf[5000];
char *params[50]; char *params[50];
void *pointer; void *pointer;
int stdout_fd = 0;
#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && \ #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && \
!defined(TEST_SUITE_MEMORY_BUFFER_ALLOC) !defined(TEST_SUITE_MEMORY_BUFFER_ALLOC)
@ -353,7 +347,7 @@ int main(int argc, const char *argv[])
if( unmet_dep_count > 0 ) if( unmet_dep_count > 0 )
{ {
mbedtls_fprintf( stderr, mbedtls_fprintf( stderr,
"FATAL: Dep count larger than zero at start of loop\n"); "FATAL: Dep count larger than zero at start of loop\n" );
mbedtls_exit( MBEDTLS_EXIT_FAILURE ); mbedtls_exit( MBEDTLS_EXIT_FAILURE );
} }
unmet_dep_count = 0; unmet_dep_count = 0;
@ -389,7 +383,7 @@ int main(int argc, const char *argv[])
unmet_dependencies[ unmet_dep_count ] = strdup(params[i]); unmet_dependencies[ unmet_dep_count ] = strdup(params[i]);
if( unmet_dependencies[ unmet_dep_count ] == NULL ) if( unmet_dependencies[ unmet_dep_count ] == NULL )
{ {
mbedtls_fprintf( stderr, "FATAL: Out of memory\n"); mbedtls_fprintf( stderr, "FATAL: Out of memory\n" );
mbedtls_exit( MBEDTLS_EXIT_FAILURE ); mbedtls_exit( MBEDTLS_EXIT_FAILURE );
} }
unmet_dep_count++; unmet_dep_count++;
@ -412,21 +406,11 @@ int main(int argc, const char *argv[])
*/ */
if( !option_verbose ) if( !option_verbose )
{ {
/* Redirect all stdout output to /dev/null */ stdout_fd = redirect_output( &stdout, "/dev/null" );
tests_stdout = dup( fileno(stdout) ); if( stdout_fd == -1 )
if( tests_stdout == -1 )
{ {
/* Redirection has failed with no stdout so exit */ /* Redirection has failed with no stdout so exit */
exit(1); exit( 1 );
}
fflush( stdout );
fclose( stdout );
stdout = fopen("/dev/null", "w" );
if( stdout == NULL )
{
/* Redirection has failed with no stdout so exit */
exit(1);
} }
} }
#endif /* __unix__ || __APPLE__ __MACH__ */ #endif /* __unix__ || __APPLE__ __MACH__ */
@ -434,18 +418,10 @@ int main(int argc, const char *argv[])
ret = dispatch_test( cnt, params ); ret = dispatch_test( cnt, params );
#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)) #if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
if( !option_verbose ) if( !option_verbose && restore_output( &stdout, stdout_fd ) )
{ {
/* Restore stdout */
fflush( stdout );
fclose( stdout );
stdout = fdopen ( tests_stdout, "w");
if( stdout == NULL )
{
/* Redirection has failed with no stdout so exit */ /* Redirection has failed with no stdout so exit */
exit(1); exit( 1 );
}
} }
#endif /* __unix__ || __APPLE__ __MACH__ */ #endif /* __unix__ || __APPLE__ __MACH__ */