Create a function for gather all the keys.

Prepare for using subclasses.

Signed-off-by: gabor-mezei-arm <gabor.mezei@arm.com>
This commit is contained in:
gabor-mezei-arm 2021-06-24 09:49:50 +02:00
parent 6ee7253df2
commit 780cf9da72
No known key found for this signature in database
GPG key ID: 106F5A41ECC305BD

View file

@ -437,22 +437,27 @@ class StorageFormat:
return [key for alg in self.constructors.generate_expressions(algorithms) return [key for alg in self.constructors.generate_expressions(algorithms)
for key in self.keys_for_algorithm(alg)] for key in self.keys_for_algorithm(alg)]
def generate_all_keys(self) -> List[StorageKey]:
"""Generate all keys for the test cases."""
keys = [] #type: List[StorageKey]
keys += self.all_keys_for_lifetimes()
keys += self.all_keys_for_usage_flags()
keys += self.all_keys_for_types()
keys += self.all_keys_for_algorithms()
return keys
def all_test_cases(self) -> List[test_case.TestCase]: def all_test_cases(self) -> List[test_case.TestCase]:
"""Generate all storage format test cases.""" """Generate all storage format test cases."""
# First build a list of all keys, then construct all the corresponding # First build a list of all keys, then construct all the corresponding
# test cases. This allows all required information to be obtained in # test cases. This allows all required information to be obtained in
# one go, which is a significant performance gain as the information # one go, which is a significant performance gain as the information
# includes numerical values obtained by compiling a C program. # includes numerical values obtained by compiling a C program.
keys = [] #type: List[StorageKey] generated_keys = self.generate_all_keys()
keys += self.all_keys_for_lifetimes()
keys += self.all_keys_for_usage_flags()
keys += self.all_keys_for_types()
keys += self.all_keys_for_algorithms()
# Skip keys with a non-default location, because they # Skip keys with a non-default location, because they
# require a driver and we currently have no mechanism to # require a driver and we currently have no mechanism to
# determine whether a driver is available. # determine whether a driver is available.
keys = filter(lambda key: key.location_value() == 0, keys) keys = filter(lambda key: key.location_value() == 0, generated_keys)
return [self.make_test_case(key) for key in keys] return [self.make_test_case(key) for key in keys]