mirror of
https://git.suyu.dev/suyu/mbedtls.git
synced 2025-12-24 00:06:32 +01:00
Merge remote-tracking branch 'origin/pr/2701' into mbedtls-2.16
* origin/pr/2701: Add all.sh component that exercises invalid_param checks Remove mbedtls_param_failed from programs Make it easier to define MBEDTLS_PARAM_FAILED as assert Make test suites compatible with #include <assert.h> Pass -m32 to the linker as well
This commit is contained in:
commit
5ecbd14fdd
54 changed files with 104 additions and 535 deletions
|
|
@ -794,9 +794,21 @@ component_build_default_make_gcc_and_cxx () {
|
|||
make TEST_CPP=1
|
||||
}
|
||||
|
||||
component_test_check_params_functionality () {
|
||||
msg "build+test: MBEDTLS_CHECK_PARAMS functionality"
|
||||
scripts/config.pl full # includes CHECK_PARAMS
|
||||
# Make MBEDTLS_PARAM_FAILED call mbedtls_param_failed().
|
||||
scripts/config.pl unset MBEDTLS_CHECK_PARAMS_ASSERT
|
||||
scripts/config.pl unset MBEDTLS_MEMORY_BUFFER_ALLOC_C
|
||||
# Only build and run tests. Do not build sample programs, because
|
||||
# they don't have a mbedtls_param_failed() function.
|
||||
make CC=gcc CFLAGS='-Werror -O1' lib test
|
||||
}
|
||||
|
||||
component_test_check_params_without_platform () {
|
||||
msg "build+test: MBEDTLS_CHECK_PARAMS without MBEDTLS_PLATFORM_C"
|
||||
scripts/config.pl full # includes CHECK_PARAMS
|
||||
# Keep MBEDTLS_PARAM_FAILED as assert.
|
||||
scripts/config.pl unset MBEDTLS_MEMORY_BACKTRACE # too slow for tests
|
||||
scripts/config.pl unset MBEDTLS_MEMORY_BUFFER_ALLOC_C
|
||||
scripts/config.pl unset MBEDTLS_PLATFORM_EXIT_ALT
|
||||
|
|
@ -814,6 +826,7 @@ component_test_check_params_silent () {
|
|||
msg "build+test: MBEDTLS_CHECK_PARAMS with alternative MBEDTLS_PARAM_FAILED()"
|
||||
scripts/config.pl full # includes CHECK_PARAMS
|
||||
scripts/config.pl unset MBEDTLS_MEMORY_BACKTRACE # too slow for tests
|
||||
# Set MBEDTLS_PARAM_FAILED to nothing.
|
||||
sed -i 's/.*\(#define MBEDTLS_PARAM_FAILED( cond )\).*/\1/' "$CONFIG_H"
|
||||
make CC=gcc CFLAGS='-Werror -O1' all test
|
||||
}
|
||||
|
|
@ -961,7 +974,7 @@ component_test_m32_o0 () {
|
|||
# Build once with -O0, to compile out the i386 specific inline assembly
|
||||
msg "build: i386, make, gcc -O0 (ASan build)" # ~ 30s
|
||||
scripts/config.pl full
|
||||
make CC=gcc CFLAGS='-O0 -Werror -Wall -Wextra -m32 -fsanitize=address'
|
||||
make CC=gcc CFLAGS='-O0 -Werror -Wall -Wextra -m32 -fsanitize=address' LDFLAGS='-m32'
|
||||
|
||||
msg "test: i386, make, gcc -O0 (ASan build)"
|
||||
make test
|
||||
|
|
@ -980,7 +993,7 @@ component_test_m32_o1 () {
|
|||
scripts/config.pl unset MBEDTLS_MEMORY_BACKTRACE
|
||||
scripts/config.pl unset MBEDTLS_MEMORY_BUFFER_ALLOC_C
|
||||
scripts/config.pl unset MBEDTLS_MEMORY_DEBUG
|
||||
make CC=gcc CFLAGS='-O1 -Werror -Wall -Wextra -m32 -fsanitize=address'
|
||||
make CC=gcc CFLAGS='-O1 -Werror -Wall -Wextra -m32 -fsanitize=address' LDFLAGS='-m32'
|
||||
|
||||
msg "test: i386, make, gcc -O1 (ASan build)"
|
||||
make test
|
||||
|
|
@ -995,7 +1008,7 @@ support_test_m32_o1 () {
|
|||
component_test_mx32 () {
|
||||
msg "build: 64-bit ILP32, make, gcc" # ~ 30s
|
||||
scripts/config.pl full
|
||||
make CC=gcc CFLAGS='-Werror -Wall -Wextra -mx32'
|
||||
make CC=gcc CFLAGS='-Werror -Wall -Wextra -mx32' LDFLAGS='-mx32'
|
||||
|
||||
msg "test: 64-bit ILP32, make, gcc"
|
||||
make test
|
||||
|
|
|
|||
|
|
@ -207,7 +207,7 @@ typedef enum
|
|||
#define TEST_VALID_PARAM( TEST ) \
|
||||
TEST_ASSERT( ( TEST, 1 ) );
|
||||
|
||||
#define assert(a) if( !( a ) ) \
|
||||
#define TEST_HELPER_ASSERT(a) if( !( a ) ) \
|
||||
{ \
|
||||
mbedtls_fprintf( stderr, "Assertion Failed at %s:%d - %s\n", \
|
||||
__FILE__, __LINE__, #a ); \
|
||||
|
|
@ -373,7 +373,7 @@ int unhexify( unsigned char *obuf, const char *ibuf )
|
|||
{
|
||||
unsigned char c, c2;
|
||||
int len = strlen( ibuf ) / 2;
|
||||
assert( strlen( ibuf ) % 2 == 0 ); /* must be even number of bytes */
|
||||
TEST_HELPER_ASSERT( strlen( ibuf ) % 2 == 0 ); /* must be even number of bytes */
|
||||
|
||||
while( *ibuf != 0 )
|
||||
{
|
||||
|
|
@ -385,7 +385,7 @@ int unhexify( unsigned char *obuf, const char *ibuf )
|
|||
else if( c >= 'A' && c <= 'F' )
|
||||
c -= 'A' - 10;
|
||||
else
|
||||
assert( 0 );
|
||||
TEST_HELPER_ASSERT( 0 );
|
||||
|
||||
c2 = *ibuf++;
|
||||
if( c2 >= '0' && c2 <= '9' )
|
||||
|
|
@ -395,7 +395,7 @@ int unhexify( unsigned char *obuf, const char *ibuf )
|
|||
else if( c2 >= 'A' && c2 <= 'F' )
|
||||
c2 -= 'A' - 10;
|
||||
else
|
||||
assert( 0 );
|
||||
TEST_HELPER_ASSERT( 0 );
|
||||
|
||||
*obuf++ = ( c << 4 ) | c2;
|
||||
}
|
||||
|
|
@ -440,7 +440,7 @@ static unsigned char *zero_alloc( size_t len )
|
|||
size_t actual_len = ( len != 0 ) ? len : 1;
|
||||
|
||||
p = mbedtls_calloc( 1, actual_len );
|
||||
assert( p != NULL );
|
||||
TEST_HELPER_ASSERT( p != NULL );
|
||||
|
||||
memset( p, 0x00, actual_len );
|
||||
|
||||
|
|
@ -467,7 +467,7 @@ unsigned char *unhexify_alloc( const char *ibuf, size_t *olen )
|
|||
return( zero_alloc( *olen ) );
|
||||
|
||||
obuf = mbedtls_calloc( 1, *olen );
|
||||
assert( obuf != NULL );
|
||||
TEST_HELPER_ASSERT( obuf != NULL );
|
||||
|
||||
(void) unhexify( obuf, ibuf );
|
||||
|
||||
|
|
|
|||
|
|
@ -179,7 +179,7 @@ static int parse_arguments( char *buf, size_t len, char **params,
|
|||
if( p + 1 < buf + len )
|
||||
{
|
||||
cur = p + 1;
|
||||
assert( cnt < params_len );
|
||||
TEST_HELPER_ASSERT( cnt < params_len );
|
||||
params[cnt++] = cur;
|
||||
}
|
||||
*p = '\0';
|
||||
|
|
|
|||
|
|
@ -13,11 +13,11 @@
|
|||
*/
|
||||
#define INCR_ASSERT(p, start, len, step) do \
|
||||
{ \
|
||||
assert( ( p ) >= ( start ) ); \
|
||||
assert( sizeof( *( p ) ) == sizeof( *( start ) ) ); \
|
||||
TEST_HELPER_ASSERT( ( p ) >= ( start ) ); \
|
||||
TEST_HELPER_ASSERT( sizeof( *( p ) ) == sizeof( *( start ) ) ); \
|
||||
/* <= is checked to support use inside a loop where \
|
||||
pointer is incremented after reading data. */ \
|
||||
assert( (uint32_t)( ( ( p ) - ( start ) ) + ( step ) ) <= ( len ) );\
|
||||
TEST_HELPER_ASSERT( (uint32_t)( ( ( p ) - ( start ) ) + ( step ) ) <= ( len ) );\
|
||||
( p ) += ( step ); \
|
||||
} \
|
||||
while( 0 )
|
||||
|
|
@ -127,7 +127,7 @@ uint8_t * receive_data( uint32_t * data_len )
|
|||
/* Read data length */
|
||||
*data_len = receive_uint32();
|
||||
data = (uint8_t *)malloc( *data_len );
|
||||
assert( data != NULL );
|
||||
TEST_HELPER_ASSERT( data != NULL );
|
||||
|
||||
greentea_getc(); // read ';' received after key i.e. *data_len
|
||||
|
||||
|
|
@ -221,7 +221,7 @@ void ** parse_parameters( uint8_t count, uint8_t * data, uint32_t data_len,
|
|||
hex_count = find_hex_count(count, data, data_len);
|
||||
|
||||
params = (void **)malloc( sizeof( void *) * ( count + hex_count ) );
|
||||
assert( params != NULL );
|
||||
TEST_HELPER_ASSERT( params != NULL );
|
||||
cur = params;
|
||||
|
||||
p = data;
|
||||
|
|
@ -360,7 +360,7 @@ int execute_tests( int args, const char ** argv )
|
|||
{
|
||||
/* Read dependency count */
|
||||
count = *p;
|
||||
assert( count < data_len );
|
||||
TEST_HELPER_ASSERT( count < data_len );
|
||||
INCR_ASSERT( p, data, data_len, sizeof( uint8_t ) );
|
||||
ret = verify_dependencies( count, p );
|
||||
if ( ret != DEPENDENCY_SUPPORTED )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue