mirror of
				https://github.com/yuzu-emu/mbedtls.git
				synced 2025-10-22 08:27:09 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			259 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			259 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| #line 2 "suites/main_test.function"
 | |
| /*
 | |
|  * *** THIS FILE HAS BEEN MACHINE GENERATED ***
 | |
|  *
 | |
|  * This file has been machine generated using the script:
 | |
|  * $generator_script
 | |
|  *
 | |
|  * Test file      : $test_file
 | |
|  *
 | |
|  * The following files were used to create this file.
 | |
|  *
 | |
|  *      Main code file      : $test_main_file
 | |
|  *      Platform code file  : $test_platform_file
 | |
|  *      Helper file         : $test_common_helper_file
 | |
|  *      Test suite file     : $test_case_file
 | |
|  *      Test suite data     : $test_case_data_file
 | |
|  *
 | |
|  *
 | |
|  *  This file is part of Mbed TLS (https://tls.mbed.org)
 | |
|  */
 | |
| 
 | |
| #if !defined(MBEDTLS_CONFIG_FILE)
 | |
| #include <mbedtls/config.h>
 | |
| #else
 | |
| #include MBEDTLS_CONFIG_FILE
 | |
| #endif
 | |
| 
 | |
| 
 | |
| /*----------------------------------------------------------------------------*/
 | |
| /* Common helper code */
 | |
| 
 | |
| $test_common_helpers
 | |
| 
 | |
| #line $line_no "suites/main_test.function"
 | |
| 
 | |
| 
 | |
| /*----------------------------------------------------------------------------*/
 | |
| /* Test Suite Code */
 | |
| 
 | |
| 
 | |
| #define TEST_SUITE_ACTIVE
 | |
| 
 | |
| $functions_code
 | |
| 
 | |
| #line $line_no "suites/main_test.function"
 | |
| 
 | |
| 
 | |
| /*----------------------------------------------------------------------------*/
 | |
| /* Test dispatch code */
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * \brief       Evaluates an expression/macro into its literal integer value.
 | |
|  *              For optimizing space for embedded targets each expression/macro
 | |
|  *              is identified by a unique identifier instead of string literals.
 | |
|  *              Identifiers and evaluation code is generated by script:
 | |
|  *              $generator_script
 | |
|  *
 | |
|  * \param exp_id    Expression identifier.
 | |
|  * \param out_value Pointer to int to hold the integer.
 | |
|  *
 | |
|  * \return       0 if exp_id is found. 1 otherwise.
 | |
|  */
 | |
| int get_expression( int32_t exp_id, int32_t * out_value )
 | |
| {
 | |
|     int ret = KEY_VALUE_MAPPING_FOUND;
 | |
| 
 | |
|     (void) exp_id;
 | |
|     (void) out_value;
 | |
| 
 | |
|     switch( exp_id )
 | |
|     {
 | |
| $expression_code
 | |
| #line $line_no "suites/main_test.function"
 | |
|         default:
 | |
|            {
 | |
|                 ret = KEY_VALUE_MAPPING_NOT_FOUND;
 | |
|            }
 | |
|            break;
 | |
|     }
 | |
|     return( ret );
 | |
| }
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * \brief       Checks if the dependency i.e. the compile flag is set.
 | |
|  *              For optimizing space for embedded targets each dependency
 | |
|  *              is identified by a unique identifier instead of string literals.
 | |
|  *              Identifiers and check code is generated by script:
 | |
|  *              $generator_script
 | |
|  *
 | |
|  * \param exp_id    Dependency identifier.
 | |
|  *
 | |
|  * \return       DEPENDENCY_SUPPORTED if set else DEPENDENCY_NOT_SUPPORTED
 | |
|  */
 | |
| int dep_check( int dep_id )
 | |
| {
 | |
|     int ret = DEPENDENCY_NOT_SUPPORTED;
 | |
| 
 | |
|     (void) dep_id;
 | |
| 
 | |
|     switch( dep_id )
 | |
|     {
 | |
| $dep_check_code
 | |
| #line $line_no "suites/main_test.function"
 | |
|         default:
 | |
|             break;
 | |
|     }
 | |
|     return( ret );
 | |
| }
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * \brief       Function pointer type for test function wrappers.
 | |
|  *
 | |
|  *
 | |
|  * \param void **   Pointer to void pointers. Represents an array of test
 | |
|  *                  function parameters.
 | |
|  *
 | |
|  * \return       void
 | |
|  */
 | |
| typedef void (*TestWrapper_t)( void ** );
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * \brief       Table of test function wrappers. Used by dispatch_test().
 | |
|  *              This table is populated by script:
 | |
|  *              $generator_script
 | |
|  *
 | |
|  */
 | |
| TestWrapper_t test_funcs[] =
 | |
| {
 | |
| $dispatch_code
 | |
| #line $line_no "suites/main_test.function"
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * \brief        Execute the test function.
 | |
|  *
 | |
|  *               This is a wrapper function around the test function execution
 | |
|  *               to allow the setjmp() call used to catch any calls to the
 | |
|  *               parameter failure callback, to be used. Calls to setjmp()
 | |
|  *               can invalidate the state of any local auto variables.
 | |
|  *
 | |
|  * \param fp     Function pointer to the test function
 | |
|  * \param params Parameters to pass
 | |
|  *
 | |
|  */
 | |
| void execute_function_ptr(TestWrapper_t fp, void **params)
 | |
| {
 | |
| #if defined(MBEDTLS_CHECK_PARAMS)
 | |
|     if ( setjmp( param_fail_jmp ) == 0 )
 | |
|     {
 | |
|         fp( params );
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|         /* Unexpected parameter validation error */
 | |
|         test_info.result = TEST_RESULT_FAILED;
 | |
|     }
 | |
| 
 | |
|     memset( param_fail_jmp, 0, sizeof(jmp_buf) );
 | |
| #else
 | |
|     fp( params );
 | |
| #endif
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * \brief        Dispatches test functions based on function index.
 | |
|  *
 | |
|  * \param exp_id    Test function index.
 | |
|  *
 | |
|  * \return       DISPATCH_TEST_SUCCESS if found
 | |
|  *               DISPATCH_TEST_FN_NOT_FOUND if not found
 | |
|  *               DISPATCH_UNSUPPORTED_SUITE if not compile time enabled.
 | |
|  */
 | |
| int dispatch_test( size_t func_idx, void ** params )
 | |
| {
 | |
|     int ret = DISPATCH_TEST_SUCCESS;
 | |
|     TestWrapper_t fp = NULL;
 | |
| 
 | |
|     if ( func_idx < (int)( sizeof( test_funcs ) / sizeof( TestWrapper_t ) ) )
 | |
|     {
 | |
|         fp = test_funcs[func_idx];
 | |
|         if ( fp )
 | |
|             execute_function_ptr(fp, params);
 | |
|         else
 | |
|             ret = DISPATCH_UNSUPPORTED_SUITE;
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|         ret = DISPATCH_TEST_FN_NOT_FOUND;
 | |
|     }
 | |
| 
 | |
|     return( ret );
 | |
| }
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * \brief       Checks if test function is supported
 | |
|  *
 | |
|  * \param exp_id    Test function index.
 | |
|  *
 | |
|  * \return       DISPATCH_TEST_SUCCESS if found
 | |
|  *               DISPATCH_TEST_FN_NOT_FOUND if not found
 | |
|  *               DISPATCH_UNSUPPORTED_SUITE if not compile time enabled.
 | |
|  */
 | |
| int check_test( size_t func_idx )
 | |
| {
 | |
|     int ret = DISPATCH_TEST_SUCCESS;
 | |
|     TestWrapper_t fp = NULL;
 | |
| 
 | |
|     if ( func_idx < (int)( sizeof(test_funcs)/sizeof( TestWrapper_t ) ) )
 | |
|     {
 | |
|         fp = test_funcs[func_idx];
 | |
|         if ( fp == NULL )
 | |
|             ret = DISPATCH_UNSUPPORTED_SUITE;
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|         ret = DISPATCH_TEST_FN_NOT_FOUND;
 | |
|     }
 | |
| 
 | |
|     return( ret );
 | |
| }
 | |
| 
 | |
| 
 | |
| $platform_code
 | |
| 
 | |
| #line $line_no "suites/main_test.function"
 | |
| 
 | |
| /*----------------------------------------------------------------------------*/
 | |
| /* Main Test code */
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * \brief       Program main. Invokes platform specific execute_tests().
 | |
|  *
 | |
|  * \param argc      Command line arguments count.
 | |
|  * \param argv      Array of command line arguments.
 | |
|  *
 | |
|  * \return       Exit code.
 | |
|  */
 | |
| int main( int argc, const char *argv[] )
 | |
| {
 | |
|     int ret = platform_setup();
 | |
|     if( ret != 0 )
 | |
|     {
 | |
|         mbedtls_fprintf( stderr,
 | |
|                          "FATAL: Failed to initialize platform - error %d\n",
 | |
|                          ret );
 | |
|         return( -1 );
 | |
|     }
 | |
|     ret = execute_tests( argc, argv );
 | |
|     platform_teardown();
 | |
|     return( ret );
 | |
| }
 | |
| 
 |