diff options
Diffstat (limited to 'tests/suites/main_test.function')
-rw-r--r-- | tests/suites/main_test.function | 260 |
1 files changed, 260 insertions, 0 deletions
diff --git a/tests/suites/main_test.function b/tests/suites/main_test.function new file mode 100644 index 000000000..48003d4f2 --- /dev/null +++ b/tests/suites/main_test.function @@ -0,0 +1,260 @@ +#line 2 "suites/main_test.function" +/* + * *** THIS FILE HAS BEEN MACHINE GENERATED *** + * + * This file has been machine generated using the script: + * __MBEDTLS_TEST_TEMPLATE__GENERATOR_SCRIPT + * + * Test file : __MBEDTLS_TEST_TEMPLATE__TEST_FILE + * + * The following files were used to create this file. + * + * Main code file : __MBEDTLS_TEST_TEMPLATE__TEST_MAIN_FILE + * Platform code file : __MBEDTLS_TEST_TEMPLATE__TEST_PLATFORM_FILE + * Helper file : __MBEDTLS_TEST_TEMPLATE__TEST_COMMON_HELPER_FILE + * Test suite file : __MBEDTLS_TEST_TEMPLATE__TEST_CASE_FILE + * Test suite data : __MBEDTLS_TEST_TEMPLATE__TEST_CASE_DATA_FILE + * + */ + +#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)) +#if !defined(_POSIX_C_SOURCE) +#define _POSIX_C_SOURCE 200112L // for fileno() from <stdio.h> +#endif +#endif + +#include "mbedtls/build_info.h" + +/* Test code may use deprecated identifiers only if the preprocessor symbol + * MBEDTLS_TEST_DEPRECATED is defined. When building tests, set + * MBEDTLS_TEST_DEPRECATED explicitly if MBEDTLS_DEPRECATED_WARNING is + * enabled but the corresponding warnings are not treated as errors. + */ +#if !defined(MBEDTLS_DEPRECATED_REMOVED) && !defined(MBEDTLS_DEPRECATED_WARNING) +#define MBEDTLS_TEST_DEPRECATED +#endif + +/*----------------------------------------------------------------------------*/ +/* Common helper code */ + +__MBEDTLS_TEST_TEMPLATE__TEST_COMMON_HELPERS + +#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function" + + +/*----------------------------------------------------------------------------*/ +/* Test Suite Code */ + + +#define TEST_SUITE_ACTIVE + +__MBEDTLS_TEST_TEMPLATE__FUNCTIONS_CODE + +#line __MBEDTLS_TEST_TEMPLATE__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: + * __MBEDTLS_TEST_TEMPLATE__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 ) + { +__MBEDTLS_TEST_TEMPLATE__EXPRESSION_CODE +#line __MBEDTLS_TEST_TEMPLATE__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: + * __MBEDTLS_TEST_TEMPLATE__GENERATOR_SCRIPT + * + * \param dep_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 ) + { +__MBEDTLS_TEST_TEMPLATE__DEP_CHECK_CODE +#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function" + default: + break; + } + return( ret ); +} + + +/** + * \brief Function pointer type for test function wrappers. + * + * A test function wrapper decodes the parameters and passes them to the + * underlying test function. Both the wrapper and the underlying function + * return void. Test wrappers assume that they are passed a suitable + * parameter array and do not perform any error detection. + * + * \param param_array The array of parameters. Each element is a `void *` + * which the wrapper casts to the correct type and + * dereferences. Each wrapper function hard-codes the + * number and types of the parameters. + */ +typedef void (*TestWrapper_t)( void **param_array ); + + +/** + * \brief Table of test function wrappers. Used by dispatch_test(). + * This table is populated by script: + * __MBEDTLS_TEST_TEMPLATE__GENERATOR_SCRIPT + * + */ +TestWrapper_t test_funcs[] = +{ +__MBEDTLS_TEST_TEMPLATE__DISPATCH_CODE +#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function" +}; + +/** + * \brief Dispatches test functions based on function index. + * + * \param func_idx Test function index. + * \param params The array of parameters to pass to the test function. + * It will be decoded by the #TestWrapper_t wrapper function. + * + * \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 ) + { + #if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) + mbedtls_test_enable_insecure_external_rng( ); + #endif + + fp( params ); + + #if defined(MBEDTLS_TEST_MUTEX_USAGE) + mbedtls_test_mutex_usage_check( ); + #endif /* MBEDTLS_TEST_MUTEX_USAGE */ + } + else + ret = DISPATCH_UNSUPPORTED_SUITE; + } + else + { + ret = DISPATCH_TEST_FN_NOT_FOUND; + } + + return( ret ); +} + + +/** + * \brief Checks if test function is supported in this build-time + * configuration. + * + * \param func_idx 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 ); +} + + +__MBEDTLS_TEST_TEMPLATE__PLATFORM_CODE + +#line __MBEDTLS_TEST_TEMPLATE__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[] ) +{ +#if defined(MBEDTLS_TEST_HOOKS) + extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const char * file ); + mbedtls_test_hook_test_fail = &mbedtls_test_fail; +#if defined(MBEDTLS_ERROR_C) + mbedtls_test_hook_error_add = &mbedtls_test_err_add_check; +#endif +#endif + + int ret = mbedtls_test_platform_setup(); + if( ret != 0 ) + { + mbedtls_fprintf( stderr, + "FATAL: Failed to initialize platform - error %d\n", + ret ); + return( -1 ); + } + + ret = execute_tests( argc, argv ); + mbedtls_test_platform_teardown(); + return( ret ); +} |