1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-17 21:22:10 +00:00

chore(common): include error explanation in protobuf messages check

This commit is contained in:
grdddj 2022-03-07 12:22:37 +01:00 committed by matejcik
parent b9858f00c5
commit 42fab282af

View File

@ -10,10 +10,12 @@ MYDIR = os.path.dirname(__file__)
EXPECTED_PREFIX_RE = re.compile(r"messages-(\w+)(?:-.*)?\.proto")
# Checking all protobuf files for their `enum` and `message` declarations
# and making sure their names start with expected prefix
for fn in sorted(glob(os.path.join(MYDIR, "messages-*.proto"))):
with open(fn, "rt") as f:
prefix = EXPECTED_PREFIX_RE.search(fn).group(1).capitalize()
if prefix in ["Bitcoin", "Bootloader", "Common", "Crypto", "Management"]:
if prefix in ("Bitcoin", "Bootloader", "Common", "Crypto", "Management"):
continue
if prefix == "Nem":
prefix = "NEM"
@ -21,12 +23,14 @@ for fn in sorted(glob(os.path.join(MYDIR, "messages-*.proto"))):
prefix = "WebAuthn"
for line in f:
line = line.strip().split(" ")
if line[0] not in ["enum", "message"]:
if line[0] not in ("enum", "message"):
continue
if not line[1].startswith(prefix) and not line[1].startswith(
"Debug" + prefix
):
print("ERROR:", fn, line[1])
expected_prefixes = (prefix, f"Debug{prefix}")
if not line[1].startswith(expected_prefixes):
print("ERROR: protobuf message does not start with expected prefix")
print(f" file: {fn}")
print(f" message: {line[1]}")
print(f" expected prefixes: {expected_prefixes}")
error = True
if error: