[rtems-central commit] validation: Improve no default entry error message

Sebastian Huber sebh at rtems.org
Wed Feb 3 12:38:18 UTC 2021


Module:    rtems-central
Branch:    master
Commit:    57f0a5da5b5266ba5517fe70cf6c37bcf9fb650f
Changeset: http://git.rtems.org/rtems-central/commit/?id=57f0a5da5b5266ba5517fe70cf6c37bcf9fb650f

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Wed Feb  3 13:35:58 2021 +0100

validation: Improve no default entry error message

---

 rtemsspec/tests/test_validation.py | 15 +++++++++++++++
 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 71490a1..8902f53 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 a1db873..7e90b45 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(



More information about the vc mailing list