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

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


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

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Wed Feb  3 11:19:04 2021 +0100

validation: Improve no states error message

---

 rtemsspec/tests/test_validation.py | 13 +++++++++++++
 rtemsspec/validation.py            |  4 +++-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/rtemsspec/tests/test_validation.py b/rtemsspec/tests/test_validation.py
index 9abc9da..d0c74e1 100644
--- a/rtemsspec/tests/test_validation.py
+++ b/rtemsspec/tests/test_validation.py
@@ -2076,3 +2076,16 @@ def test_validation_invalid_actions():
              "item of type 'build/test-program'")
     with pytest.raises(ValueError, match=match):
         generate(validation_config, item_cache)
+    test_program_data = {
+        "SPDX-License-Identifier": spdx,
+        "copyrights": [copyright],
+        "build-type": "test-program",
+        "enabled-by": True,
+        "links": [],
+        "source": ["a.c"],
+        "type": "build",
+    }
+    _add_item(item_cache, "/tp", test_program_data, "build/test-program")
+    match = "pre-condition 'A' of spec:/a has no states"
+    with pytest.raises(ValueError, match=match):
+        generate(validation_config, item_cache)
diff --git a/rtemsspec/validation.py b/rtemsspec/validation.py
index 6515ca2..fda72b8 100644
--- a/rtemsspec/validation.py
+++ b/rtemsspec/validation.py
@@ -531,7 +531,9 @@ class _ActionRequirementTestItem(_TestItem):
         transition_count = 1
         for condition in self["pre-conditions"]:
             state_count = len(condition["states"])
-            assert state_count > 0
+            if state_count == 0:
+                raise ValueError(f"pre-condition '{condition['name']}' of "
+                                 f"{self.item.spec} has no states")
             transition_count *= state_count
         transition_map = [list() for _ in range(transition_count)
                           ]  # type: _TransitionMap



More information about the vc mailing list