[rtems-central commit] specview.py: Improve container validation
Sebastian Huber
sebh at rtems.org
Tue May 9 13:45:26 UTC 2023
Module: rtems-central
Branch: master
Commit: 0bdce695b8912620d44d43faf1326463aadb96a9
Changeset: http://git.rtems.org/rtems-central/commit/?id=0bdce695b8912620d44d43faf1326463aadb96a9
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Fri May 5 14:41:19 2023 +0200
specview.py: Improve container validation
---
specview.py | 25 +++++++++++++++++++------
1 file changed, 19 insertions(+), 6 deletions(-)
diff --git a/specview.py b/specview.py
index 14a61936..854d5e8c 100755
--- a/specview.py
+++ b/specview.py
@@ -156,8 +156,6 @@ _VALIDATION_LEAF = [
"constraint",
"glossary/group",
"glossary/term",
- "interface/appl-config-group",
- "interface/container",
"interface/domain",
"interface/enum",
"interface/enumerator",
@@ -190,21 +188,36 @@ _VALIDATION_LEAF = [
_VALIDATION_ROLES = _CHILD_ROLES + ["validation"]
-def _validate(item: Item) -> bool:
+def _validate_tree(item: Item) -> bool:
+ pre_qualified = is_pre_qualified(item)
+ item["_pre_qualified"] = pre_qualified
validated = True
count = 0
for link in itertools.chain(item.links_to_children(_VALIDATION_ROLES),
item.links_to_parents(_PARENT_ROLES)):
- validated = _validate(link.item) and validated
+ validated = _validate_tree(link.item) and validated
count += 1
- pre_qualified = is_pre_qualified(item)
- item["_pre_qualified"] = pre_qualified
if count == 0:
validated = (not pre_qualified) or (item.type in _VALIDATION_LEAF)
item["_validated"] = validated
return validated
+def _validate_containers(item: Item) -> None:
+ for item_2 in itertools.chain(
+ item.cache.items_by_type["interface/domain"],
+ item.cache.items_by_type["interface/header-file"]):
+ for item_3 in item_2.children("interface-placement"):
+ if not item_3["_validated"]:
+ item_2["_validated"] = False
+ break
+
+
+def _validate(item: Item) -> None:
+ _validate_tree(item)
+ _validate_containers(item)
+
+
def _validation_count(item: Item) -> int:
return len(list(child for child in item.children("validation")))
More information about the vc
mailing list