/***** includes *****/ #include "internal.h" /****************************************************************************/ void internal_display_test_name( char *format_string, ... ) { va_list va; assert( format_string != NULL ); va_start( va, format_string ); vprintf( format_string, va ); printf( "..." ); va_end( va ); fflush( stdout ); return; } /****************************************************************************/ void internal_display_test_result( lfds700_pal_uint_t number_name_dvs_pairs, ... ) { char *name; enum flag passed_flag = RAISED; enum lfds700_misc_validity dvs; lfds700_pal_uint_t loop; va_list va; // TRD : number_name_dvs_pairs can be any value in its range va_start( va, number_name_dvs_pairs ); for( loop = 0 ; loop < number_name_dvs_pairs ; loop++ ) { name = va_arg( va, char * ); dvs = va_arg( va, enum lfds700_misc_validity ); if( dvs != LFDS700_MISC_VALIDITY_VALID ) { passed_flag = LOWERED; break; } } va_end( va ); if( passed_flag == RAISED ) puts( "passed" ); if( passed_flag == LOWERED ) { printf( "failed (" ); va_start( va, number_name_dvs_pairs ); for( loop = 0 ; loop < number_name_dvs_pairs ; loop++ ) { name = va_arg( va, char * ); dvs = va_arg( va, enum lfds700_misc_validity ); printf( "%s ", name ); internal_display_data_structure_validity( dvs ); if( loop+1 < number_name_dvs_pairs ) printf( ", " ); } va_end( va ); printf( ")\n" ); /* TRD : quick hack the whole test programme needs rewriting and for now I just want to make it so we exit with failure upon any test failing */ exit( EXIT_FAILURE ); } return; } /****************************************************************************/ void internal_display_data_structure_validity( enum lfds700_misc_validity dvs ) { char *string = NULL; switch( dvs ) { case LFDS700_MISC_VALIDITY_VALID: string = "valid"; break; case LFDS700_MISC_VALIDITY_INVALID_LOOP: string = "invalid - loop detected"; break; case LFDS700_MISC_VALIDITY_INVALID_ORDER: string = "invalid - invalid order detected"; break; case LFDS700_MISC_VALIDITY_INVALID_MISSING_ELEMENTS: string = "invalid - missing elements"; break; case LFDS700_MISC_VALIDITY_INVALID_ADDITIONAL_ELEMENTS: string = "invalid - additional elements"; break; case LFDS700_MISC_VALIDITY_INVALID_TEST_DATA: string = "invalid - invalid test data"; break; } printf( "%s", string ); return; } /****************************************************************************/ void internal_show_version() { char const *version_and_build_string; printf( "test %s (%s, %s) (" __DATE__ " " __TIME__ ")\n", LFDS700_TEST_VERSION_STRING, BUILD_TYPE_STRING, MODE_TYPE_STRING ); lfds700_misc_query( LFDS700_MISC_QUERY_GET_BUILD_AND_VERSION_STRING, NULL, (void **) &version_and_build_string ); printf( "%s\n", version_and_build_string ); return; } /****************************************************************************/ #pragma warning( disable : 4100 ) void internal_logical_core_id_element_cleanup_callback( struct lfds700_list_asu_state *lasus, struct lfds700_list_asu_element *lasue ) { struct test_pal_logical_processor *lp; assert( lasus != NULL ); assert( lasue != NULL ); lp = LFDS700_LIST_ASU_GET_VALUE_FROM_ELEMENT( *lasue ); util_aligned_free( lp ); return; } #pragma warning( default : 4100 )