Add key usage policy extension support for key generation
Signed-off-by: gabor-mezei-arm <gabor.mezei@arm.com>
diff --git a/tests/scripts/generate_psa_tests.py b/tests/scripts/generate_psa_tests.py
old mode 100644
new mode 100755
index 8e57f01..da15d84
--- a/tests/scripts/generate_psa_tests.py
+++ b/tests/scripts/generate_psa_tests.py
@@ -230,12 +230,14 @@
def __init__(self, *, description: str, **kwargs) -> None:
super().__init__(**kwargs)
self.description = description #type: str
+ self.usage = self.original_usage #type: psa_storage.Expr
+
class StorageKeyBuilder:
- def __init__(self) -> None:
- pass
+ def __init__(self, usage_extension: bool) -> None:
+ self.usage_extension = usage_extension #type: bool
def build(self, **kwargs) -> StorageKey:
- return StorageKey(**kwargs)
+ return StorageKey(usage_extension = self.usage_extension, **kwargs)
class StorageFormat:
"""Storage format stability test cases."""
@@ -253,7 +255,7 @@
self.constructors = info.constructors #type: macro_collector.PSAMacroEnumerator
self.version = version #type: int
self.forward = forward #type: bool
- self.key_builder = StorageKeyBuilder() #type: StorageKeyBuilder
+ self.key_builder = StorageKeyBuilder(usage_extension = True) #type: StorageKeyBuilder
def make_test_case(self, key: StorageKey) -> test_case.TestCase:
"""Construct a storage format test case for the given key.
@@ -467,6 +469,24 @@
def __init__(self, info: Information) -> None:
super().__init__(info, 0, False)
+ def all_keys_for_usage_flags(self) -> List[StorageKey]:
+ """Generate test keys covering usage flags."""
+ # First generate keys without usage policy extension for
+ # compatibility testing, then generate the keys with extension
+ # to check the extension is working.
+ keys = [] #type: List[StorageKey]
+ prev_builder = self.key_builder
+
+ self.key_builder = StorageKeyBuilder(usage_extension = False)
+ keys += super().all_keys_for_usage_flags(extra_desc = 'without extension')
+
+ self.key_builder = StorageKeyBuilder(usage_extension = True)
+ keys += super().all_keys_for_usage_flags(extra_desc = 'with extension')
+
+ self.key_builder = prev_builder
+ return keys
+
+
class TestGenerator:
"""Generate test data."""