summaryrefslogtreecommitdiffstats
path: root/rtemsspec
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-03-25 07:31:08 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-03-25 07:33:10 +0100
commite8a919e8eaf71786d831f1bc0343c0395f44b418 (patch)
tree90bf88cfe24a76317ac1e117f55d09a8f132b495 /rtemsspec
parentvalidation: The skip entry flag must be 0 or 1 (diff)
downloadrtems-central-e8a919e8eaf71786d831f1bc0343c0395f44b418.tar.bz2
validation: Reject more duplicates
Diffstat (limited to 'rtemsspec')
-rw-r--r--rtemsspec/validation.py15
1 files changed, 8 insertions, 7 deletions
diff --git a/rtemsspec/validation.py b/rtemsspec/validation.py
index 5a3e776c..944764f6 100644
--- a/rtemsspec/validation.py
+++ b/rtemsspec/validation.py
@@ -845,13 +845,14 @@ class TransitionMap:
Transition(desc_idx, enabled_by, skip_post_cond[0],
pre_cond_na, skip_post_cond[1:]))
if transition_map[map_idx]:
- if isinstance(enabled_by, bool) and enabled_by:
- raise ValueError(
- f"transition map descriptor {desc_idx} of "
- f"{self._item.spec} duplicates pre-condition set "
- f"{{{self._map_index_to_pre_conditions(map_idx)}}} "
- "defined by transition map descriptor "
- f"{transition_map[map_idx][0].desc_idx}")
+ for existing in transition_map[map_idx].variants:
+ if existing.enabled_by == variant.enabled_by:
+ raise ValueError(
+ f"transition map descriptor {desc_idx} of "
+ f"{self._item.spec} duplicates pre-condition set "
+ f"{{{self._map_index_to_pre_conditions(map_idx)}}}"
+ " defined by transition map descriptor "
+ f"{existing.desc_idx}")
default = transition_map[map_idx][0]
if (default.post_cond, default.skip,
default.pre_cond_na) == (variant.post_cond,