Move the type_word->name_set mapping into its own method
No behavior change.
@@ -100,6 +100,17 @@ class Inputs:
'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):
"""Populate the list of values for macro arguments.
@@ -313,7 +324,7 @@ def normalize(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.
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
encountered.
"""
+ names = inputs.get_names(type_word)
expressions = sorted(inputs.generate_expressions(names))
values = run_c(options, type_word, expressions)
output = subprocess.check_output([options.program, type_word] + values)
@@ -348,13 +360,9 @@ def run_tests(options, inputs):
"""
count = 0
errors = []
- for type_word, names in [('status', inputs.statuses),
- ('algorithm', inputs.algorithms),
- ('ecc_curve', inputs.ecc_curves),
- ('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)
+ for type_word in ['status', 'algorithm', 'ecc_curve', 'dh_group',
+ 'key_type', 'key_usage']:
+ c, e = do_test(options, inputs, type_word)
count += c
errors += e
return count, errors
