mirror of
https://github.com/Mbed-TLS/mbedtls-framework.git
synced 2026-08-20 18:19:51 +00:00
test_driver.py: Add method to prefix test driver exposed identifiers
Signed-off-by: Ronald Cron <[email protected]>
This commit is contained in:
@@ -156,6 +156,15 @@ class TestDriverGenerator:
|
||||
identifiers_with_prefixes.add(identifier)
|
||||
return identifiers_with_prefixes
|
||||
|
||||
def prefix_identifiers(self, identifiers_to_prefix: Set[str]):
|
||||
"""
|
||||
In all test driver files, prefix each identifier in `identifiers_to_prefix`
|
||||
with the test driver prefix: <DRIVER>_ for uppercase identifiers,
|
||||
and <driver>_ for lowercase ones.
|
||||
"""
|
||||
for f in iter_code_files(self.dst_dir):
|
||||
self.__prefix_identifiers_in_file(f, identifiers_to_prefix, self.driver)
|
||||
|
||||
@staticmethod
|
||||
def __rewrite_inclusions_in_file(file: Path, headers: Set[str],
|
||||
src_include_dir: str, driver: str,) -> None:
|
||||
@@ -186,3 +195,28 @@ class TestDriverGenerator:
|
||||
new_text = include_line_re.sub(repl, text)
|
||||
if changed:
|
||||
file.write_text(new_text, encoding="utf-8")
|
||||
|
||||
@staticmethod
|
||||
def __prefix_identifiers_in_file(file: Path, identifiers: Set[str], \
|
||||
prefix: str) -> None:
|
||||
"""
|
||||
In `file`, prefix each identifier in `identifiers` with the uppercase
|
||||
form of `prefix` if the identifier is uppercase, or with the lowercase
|
||||
form of `prefix` otherwise.
|
||||
"""
|
||||
c_identifier_re = re.compile(r"\b[A-Za-z_][A-Za-z0-9_]*\b")
|
||||
text = file.read_text(encoding="utf-8")
|
||||
prefix_uppercased = prefix.upper()
|
||||
prefix_lowercased = prefix.lower()
|
||||
|
||||
def repl(m: Match) -> str:
|
||||
identifier = m.group(0)
|
||||
if identifier in identifiers:
|
||||
if identifier[0].isupper():
|
||||
return f"{prefix_uppercased}_{identifier}"
|
||||
else:
|
||||
return f"{prefix_lowercased}_{identifier}"
|
||||
return identifier
|
||||
|
||||
new_text = c_identifier_re.sub(repl, text)
|
||||
file.write_text(new_text, encoding="utf-8")
|
||||
|
||||
Reference in New Issue
Block a user