diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-03-12 10:21:40 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-03-17 18:35:11 +0100 |
commit | bcbb588fd258705968de1dac155ba81603646a60 (patch) | |
tree | f119489761787fa38b172d7b66310aa083ac1462 /rtemsspec | |
parent | spec: Update semaphore specification (diff) | |
download | rtems-central-bcbb588fd258705968de1dac155ba81603646a60.tar.bz2 |
validation: Add default for transition map entries
Diffstat (limited to 'rtemsspec')
-rw-r--r-- | rtemsspec/tests/spec-validation/action2.yml | 14 | ||||
-rw-r--r-- | rtemsspec/validation.py | 20 |
2 files changed, 23 insertions, 11 deletions
diff --git a/rtemsspec/tests/spec-validation/action2.yml b/rtemsspec/tests/spec-validation/action2.yml index dcb88080..7836b0d9 100644 --- a/rtemsspec/tests/spec-validation/action2.yml +++ b/rtemsspec/tests/spec-validation/action2.yml @@ -168,19 +168,15 @@ transition-map: B: - Y - enabled-by: true - post-conditions: - A: X - B: X - pre-conditions: - A: - - X - B: - - Z -- enabled-by: true post-conditions: SkipReason pre-conditions: A: - Y B: - Z +- enabled-by: true + post-conditions: + A: X + B: X + pre-conditions: default type: requirement diff --git a/rtemsspec/validation.py b/rtemsspec/validation.py index 204e7c92..c38cfadf 100644 --- a/rtemsspec/validation.py +++ b/rtemsspec/validation.py @@ -618,6 +618,18 @@ class _ActionRequirementTestItem(_TestItem): " " + ", ".join(pre_cond_not_applicables), trans_index)) + def _add_default(self, trans_index: int, transition_map: _TransitionMap, + pre_cond_not_applicables: List[str], + post_cond: Tuple[int, ...]) -> None: + for transition in transition_map: + if not transition: + transition.append( + _Transition( + "1", post_cond, + " " + ", ".join(pre_cond_not_applicables + + ["0"] * self._pre_condition_count), + trans_index)) + def _get_transition_map(self) -> _TransitionMap: transition_count = 1 for condition in self["pre-conditions"]: @@ -647,8 +659,12 @@ class _ActionRequirementTestItem(_TestItem): post_cond = tuple( len(self._post_state_to_index[index]) for index in range(self._post_condition_count)) - self._add_transitions(trans_index, 0, 0, transition, - transition_map, info, post_cond) + if isinstance(transition["pre-conditions"], dict): + self._add_transitions(trans_index, 0, 0, transition, + transition_map, info, post_cond) + else: + assert transition["pre-conditions"] == "default" + self._add_default(trans_index, transition_map, info, post_cond) return transition_map def _post_condition_enumerators(self, conditions: Any) -> str: |