Move the type_word->name_set mapping into its own method

No behavior change.
This commit is contained in:
Gilles Peskine 2019-11-21 17:17:01 +01:00
parent 4408dfd0fc
commit ffe2d6e71b

View file

@ -100,6 +100,17 @@ class Inputs:
'tag_length': ['1', '63'], 'tag_length': ['1', '63'],
} }
def get_names(self, type_word):
"""Return the set of known names of values of the given type."""
return {
'status': self.statuses,
'algorithm': self.algorithms,
'ecc_curve': self.ecc_curves,
'dh_group': self.dh_groups,
'key_type': self.key_types,
'key_usage': self.key_usage_flags,
}[type_word]
def gather_arguments(self): def gather_arguments(self):
"""Populate the list of values for macro arguments. """Populate the list of values for macro arguments.
@ -313,7 +324,7 @@ def normalize(expr):
""" """
return re.sub(NORMALIZE_STRIP_RE, '', expr) return re.sub(NORMALIZE_STRIP_RE, '', expr)
def do_test(options, inputs, type_word, names): def do_test(options, inputs, type_word):
"""Test psa_constant_names for the specified type. """Test psa_constant_names for the specified type.
Run program on names. Run program on names.
@ -324,6 +335,7 @@ def do_test(options, inputs, type_word, names):
that have been tested and ``errors`` is the list of errors that were that have been tested and ``errors`` is the list of errors that were
encountered. encountered.
""" """
names = inputs.get_names(type_word)
expressions = sorted(inputs.generate_expressions(names)) expressions = sorted(inputs.generate_expressions(names))
values = run_c(options, type_word, expressions) values = run_c(options, type_word, expressions)
output = subprocess.check_output([options.program, type_word] + values) output = subprocess.check_output([options.program, type_word] + values)
@ -348,13 +360,9 @@ def run_tests(options, inputs):
""" """
count = 0 count = 0
errors = [] errors = []
for type_word, names in [('status', inputs.statuses), for type_word in ['status', 'algorithm', 'ecc_curve', 'dh_group',
('algorithm', inputs.algorithms), 'key_type', 'key_usage']:
('ecc_curve', inputs.ecc_curves), c, e = do_test(options, inputs, type_word)
('dh_group', inputs.dh_groups),
('key_type', inputs.key_types),
('key_usage', inputs.key_usage_flags)]:
c, e = do_test(options, inputs, type_word, names)
count += c count += c
errors += e errors += e
return count, errors return count, errors