Speed up the generation of storage format test cases

First build a list of all keys, then construct all the corresponding
test cases. This allows all required information to be obtained in
one go, which is a significant performance gain as the information
includes numerical values obtained by compiling a C program.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
Gilles Peskine 2021-04-12 14:43:05 +02:00
parent 0ba69a462e
commit ae9f14b159

View File

@ -371,11 +371,15 @@ class StorageFormat:
def all_test_cases(self) -> Iterator[test_case.TestCase]: def all_test_cases(self) -> Iterator[test_case.TestCase]:
"""Generate all storage format test cases.""" """Generate all storage format test cases."""
for key in self.all_keys_for_usage_flags(): # First build a list of all keys, then construct all the corresponding
yield self.make_test_case(key) # test cases. This allows all required information to be obtained in
for key in self.all_keys_for_types(): # one go, which is a significant performance gain as the information
yield self.make_test_case(key) # includes numerical values obtained by compiling a C program.
for key in self.all_keys_for_algorithms(): keys = [] #type: List[StorageKey]
keys += self.all_keys_for_usage_flags()
keys += self.all_keys_for_types()
keys += self.all_keys_for_algorithms()
for key in keys:
yield self.make_test_case(key) yield self.make_test_case(key)
# To do: vary id, lifetime # To do: vary id, lifetime