Allow more signed integer types in test function arguments

Now that the C code supports the full range of intmax_t, allow any size of
signed integer type in the .data file parser.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
Gilles Peskine 2022-12-04 15:57:49 +01:00
parent 872948cc72
commit 6f5082bf4d
4 changed files with 49 additions and 5 deletions

View file

@ -171,8 +171,23 @@ import string
import argparse
# Types regognized as integer arguments in test functions.
INTEGER_TYPES = frozenset(['int'])
# Types regognized as signed integer arguments in test functions.
SIGNED_INTEGER_TYPES = frozenset([
'char',
'short',
'short int',
'int',
'int8_t',
'int16_t',
'int32_t',
'int64_t',
'intmax_t',
'long',
'long int',
'long long int',
'mbedtls_mpi_sint',
'psa_status_t',
])
# Types recognized as string arguments in test functions.
STRING_TYPES = frozenset(['char*', 'const char*', 'char const*'])
# Types recognized as hex data arguments in test functions.
@ -471,7 +486,7 @@ def parse_function_argument(arg, arg_idx, args, local_vars, args_dispatch):
# E.g. "int x[42]"
return None
typ, _ = m.groups()
if typ in INTEGER_TYPES:
if typ in SIGNED_INTEGER_TYPES:
args.append('int')
args_dispatch.append('((mbedtls_test_argument_t*)params[%d])->sint' % arg_idx)
return 1

View file

@ -507,10 +507,10 @@ class ParseFuncSignature(TestCase):
def test_unsupported_arg(self):
"""
Test unsupported arguments (not among int, char * and data_t)
Test unsupported argument type
:return:
"""
line = 'void entropy_threshold( char * a, data_t * h, char result )'
line = 'void entropy_threshold( char * a, data_t * h, unknown_t result )'
self.assertRaises(ValueError, parse_function_arguments, line)
def test_empty_params(self):