diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-03-12 16:12:21 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-03-17 18:35:11 +0100 |
commit | 6a703f753f899446934616d0b66a7c0ffc8ca410 (patch) | |
tree | d8b6ac0087fdf4458d15aeeeca38bc1a16e480f0 /rtemsspec | |
parent | validation: Shorten variable name (diff) | |
download | rtems-central-6a703f753f899446934616d0b66a7c0ffc8ca410.tar.bz2 |
validation: Allow N/A for post-condition states
Diffstat (limited to 'rtemsspec')
-rw-r--r-- | rtemsspec/tests/spec-validation/action2.yml | 2 | ||||
-rw-r--r-- | rtemsspec/tests/test_validation.py | 4 | ||||
-rw-r--r-- | rtemsspec/validation.py | 7 |
3 files changed, 7 insertions, 6 deletions
diff --git a/rtemsspec/tests/spec-validation/action2.yml b/rtemsspec/tests/spec-validation/action2.yml index 7836b0d9..626d8a70 100644 --- a/rtemsspec/tests/spec-validation/action2.yml +++ b/rtemsspec/tests/spec-validation/action2.yml @@ -162,7 +162,7 @@ transition-map: - enabled-by: true post-conditions: A: Y - B: X + B: N/A pre-conditions: A: N/A B: diff --git a/rtemsspec/tests/test_validation.py b/rtemsspec/tests/test_validation.py index 8b75fe23..b64b0cf1 100644 --- a/rtemsspec/tests/test_validation.py +++ b/rtemsspec/tests/test_validation.py @@ -2190,7 +2190,7 @@ static const uint8_t Action2_TransitionMap[][ 2 ] = { Action2_Post_B_Y }, { Action2_Post_A_Y, - Action2_Post_B_X + Action2_Post_B_NA }, { Action2_Post_A_X, Action2_Post_B_X @@ -2199,7 +2199,7 @@ static const uint8_t Action2_TransitionMap[][ 2 ] = { Action2_Post_B_Y }, { Action2_Post_A_Y, - Action2_Post_B_X + Action2_Post_B_NA }, { Action2_Post_A_NA, Action2_Post_B_NA diff --git a/rtemsspec/validation.py b/rtemsspec/validation.py index 683656fb..77450fb8 100644 --- a/rtemsspec/validation.py +++ b/rtemsspec/validation.py @@ -473,8 +473,9 @@ _TransitionMap = List[List[_Transition]] def _state_to_index(conditions: List[Any]) -> Tuple[Dict[str, int], ...]: return tuple( dict((state["name"], index) - for index, state in enumerate(condition["states"])) - for condition in conditions) + for index, state in enumerate(condition["states"] + [{ + "name": "N/A" + }])) for condition in conditions) def _condition_index_to_enum(prefix: str, @@ -652,7 +653,7 @@ class _ActionRequirementTestItem(_TestItem): else: info = ["1"] post_cond = tuple( - len(self._post_state_to_index[index]) + len(self._post_state_to_index[index]) - 1 for index in range(self._post_condition_count)) if isinstance(transition["pre-conditions"], dict): self._add_transitions(trans_index, 0, 0, transition, |