summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-02-03 13:35:58 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-02-03 13:38:06 +0100
commit57f0a5da5b5266ba5517fe70cf6c37bcf9fb650f (patch)
treedab96c013be0ad326eed26ab3d9c8206c75ebf51
parentvalidation: Improve duplicate error msg (diff)
downloadrtems-central-57f0a5da5b5266ba5517fe70cf6c37bcf9fb650f.tar.bz2
validation: Improve no default entry error message
-rw-r--r--rtemsspec/tests/test_validation.py15
-rw-r--r--rtemsspec/validation.py8
2 files changed, 21 insertions, 2 deletions
diff --git a/rtemsspec/tests/test_validation.py b/rtemsspec/tests/test_validation.py
index 71490a14..8902f530 100644
--- a/rtemsspec/tests/test_validation.py
+++ b/rtemsspec/tests/test_validation.py
@@ -2122,3 +2122,18 @@ def test_validation_invalid_actions():
"set {A=A0} defined by transition map entry 0")
with pytest.raises(ValueError, match=match):
generate(validation_config, item_cache)
+ action_data["transition-map"][1]["pre-conditions"]["A"] = ["A1"]
+ action_data["pre-conditions"][0]["states"].append({
+ "name": "A1",
+ "test-code": None,
+ "text": None
+ })
+ action_data["pre-conditions"][0]["states"].append({
+ "name": "A2",
+ "test-code": None,
+ "text": None
+ })
+ match = ("transition map of spec:/a contains no default entry "
+ "for pre-condition set {A=A2}")
+ with pytest.raises(ValueError, match=match):
+ generate(validation_config, item_cache)
diff --git a/rtemsspec/validation.py b/rtemsspec/validation.py
index a1db8736..7e90b458 100644
--- a/rtemsspec/validation.py
+++ b/rtemsspec/validation.py
@@ -602,8 +602,12 @@ class _ActionRequirementTestItem(_TestItem):
])
map_elements = []
info_elements = []
- for transistions in transition_map:
- assert transistions[0].enabled_by == "1"
+ for map_index, transistions in enumerate(transition_map):
+ if not transistions or transistions[0].enabled_by != "1":
+ raise ValueError(
+ f"transition map of {self.item.spec} contains no default "
+ "entry for pre-condition set "
+ f"{{{self._map_index_to_pre_conditions(map_index)}}}")
if len(transistions) == 1:
map_elements.append(
self._post_condition_enumerators(