diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-02-03 13:35:58 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-02-03 13:38:06 +0100 |
commit | 57f0a5da5b5266ba5517fe70cf6c37bcf9fb650f (patch) | |
tree | dab96c013be0ad326eed26ab3d9c8206c75ebf51 | |
parent | validation: Improve duplicate error msg (diff) | |
download | rtems-central-57f0a5da5b5266ba5517fe70cf6c37bcf9fb650f.tar.bz2 |
validation: Improve no default entry error message
-rw-r--r-- | rtemsspec/tests/test_validation.py | 15 | ||||
-rw-r--r-- | rtemsspec/validation.py | 8 |
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( |