mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-11-03 20:22:59 -05:00 
			
		
		
		
	SSL test programs: allow for test hooks init and error reports
Create utility functions to set up test hooks and report errors that the test hooks might detect. Call them in ssl_client2 and ssl_server2. Test hooks are potentially enabled by compiling with MBEDTLS_TEST_HOOKS. This commit only sets up the functions. It doesn't make them do anything yet. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
		
							parent
							
								
									4337a9cb18
								
							
						
					
					
						commit
						53dea743d5
					
				@ -734,6 +734,8 @@ int main( int argc, char *argv[] )
 | 
			
		||||
    mbedtls_memory_buffer_alloc_init( alloc_buf, sizeof(alloc_buf) );
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    test_hooks_init( );
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * Make sure memory references are valid.
 | 
			
		||||
     */
 | 
			
		||||
@ -3036,6 +3038,14 @@ exit:
 | 
			
		||||
    mbedtls_free( context_buf );
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    if( test_hooks_failure_detected( ) )
 | 
			
		||||
    {
 | 
			
		||||
        if( ret == 0 )
 | 
			
		||||
            ret = 1;
 | 
			
		||||
        mbedtls_printf( "Test hooks detected errors.\n" );
 | 
			
		||||
    }
 | 
			
		||||
    test_hooks_free( );
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
 | 
			
		||||
#if defined(MBEDTLS_MEMORY_DEBUG)
 | 
			
		||||
    mbedtls_memory_buffer_alloc_status();
 | 
			
		||||
 | 
			
		||||
@ -1369,6 +1369,8 @@ int main( int argc, char *argv[] )
 | 
			
		||||
#endif  /* MBEDTLS_MEMORY_DEBUG */
 | 
			
		||||
#endif  /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */
 | 
			
		||||
 | 
			
		||||
    test_hooks_init( );
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * Make sure memory references are valid in case we exit early.
 | 
			
		||||
     */
 | 
			
		||||
@ -3998,6 +4000,14 @@ exit:
 | 
			
		||||
    mbedtls_free( context_buf );
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    if( test_hooks_failure_detected( ) )
 | 
			
		||||
    {
 | 
			
		||||
        if( ret == 0 )
 | 
			
		||||
            ret = 1;
 | 
			
		||||
        mbedtls_printf( "Test hooks detected errors.\n" );
 | 
			
		||||
    }
 | 
			
		||||
    test_hooks_free( );
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
 | 
			
		||||
#if defined(MBEDTLS_MEMORY_DEBUG)
 | 
			
		||||
    mbedtls_memory_buffer_alloc_status();
 | 
			
		||||
 | 
			
		||||
@ -321,4 +321,21 @@ int idle( mbedtls_net_context *fd,
 | 
			
		||||
    return( 0 );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_TEST_HOOKS)
 | 
			
		||||
 | 
			
		||||
void test_hooks_init( void )
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int test_hooks_failure_detected( void )
 | 
			
		||||
{
 | 
			
		||||
    return( 0 );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void test_hooks_free( void )
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* MBEDTLS_TEST_HOOKS */
 | 
			
		||||
 | 
			
		||||
#endif /* !defined(MBEDTLS_SSL_TEST_IMPOSSIBLE) */
 | 
			
		||||
 | 
			
		||||
@ -258,5 +258,36 @@ int idle( mbedtls_net_context *fd,
 | 
			
		||||
#endif
 | 
			
		||||
          int idle_reason );
 | 
			
		||||
 | 
			
		||||
#if defined(MBEDTLS_TEST_HOOKS)
 | 
			
		||||
/** Initialize whatever test hooks are enabled by the compile-time
 | 
			
		||||
 * configuration and make sense for the TLS test programs. */
 | 
			
		||||
void test_hooks_init( void );
 | 
			
		||||
 | 
			
		||||
/** Check if any test hooks detected a problem.
 | 
			
		||||
 *
 | 
			
		||||
 * If a problem was detected, make sure to print an explanation to stderr,
 | 
			
		||||
 * either at the time of detection or during the call to this function.
 | 
			
		||||
 *
 | 
			
		||||
 * \return Nonzero if a problem was detected.
 | 
			
		||||
 *         \c 0 if no problem was detected.
 | 
			
		||||
 */
 | 
			
		||||
int test_hooks_failure_detected( void );
 | 
			
		||||
 | 
			
		||||
/** Free any resources allocated for the sake of test hooks.
 | 
			
		||||
 *
 | 
			
		||||
 * Call this at the end of the program so that resource leak analyzers
 | 
			
		||||
 * don't complain.
 | 
			
		||||
 */
 | 
			
		||||
void test_hooks_free( void );
 | 
			
		||||
 | 
			
		||||
#else /* MBEDTLS_TEST_HOOKS */
 | 
			
		||||
 | 
			
		||||
/* Define macros that do nothing, for convenience. */
 | 
			
		||||
#define test_hooks_init( ) ( (void) 0 )
 | 
			
		||||
#define test_hooks_failure_detected( ) 0
 | 
			
		||||
#define test_hooks_free( ) ( (void) 0 )
 | 
			
		||||
 | 
			
		||||
#endif /* !MBEDTLS_TEST_HOOKS */
 | 
			
		||||
 | 
			
		||||
#endif /* MBEDTLS_SSL_TEST_IMPOSSIBLE conditions: else */
 | 
			
		||||
#endif /* MBEDTLS_PROGRAMS_SSL_SSL_TEST_LIB_H */
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user