Allow multiple final states in Behavior Annex specifications 馃 - #3242
Merged
Merged
Conversation
Validate an external AADL model with two final states in both types and implementations of all 14 component categories, plus a subprogram whose initial state is also final. Assert category coverage and the final-state counts so acceptance cannot pass with missing cases. The regression fails only on the six multiple-final-state diagnostics for the subprogram specifications, with no unrelated AADL errors.
Remove the unconditional subprogram final-state upper limit to follow AS5506/3 Rev. A D.3. Standard behavior specifications may describe alternative returns, including in component implementations; those do not implicitly select a deterministic implementation profile. Retain the requirement for at least one subprogram final state and all other state-legality checks. Update the legacy semantic and Xtext integration expectations, add characterization baselines for all 14 component categories, and mark conformance finding G15 implemented. The regression failed before the fix and now passes for both types and implementations. Validation: 178 BA tests and a clean offline root reactor with -T5 and -Dtycho.localArtifacts=ignore; all 143 projects and 1,638 tests passed with no failures, errors, or skips. Fixes #3179
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #3179
The legality checker rejected every subprogram behavior specification with more than one final state. Remove that unconditional upper limit to follow AS5506/3 Rev. A D.3, while retaining the requirement for at least one subprogram final state. Declaring an annex on a component implementation does not itself select a deterministic implementation profile.
Issue3179Testvalidates an external AADL model with two final states in both types and implementations of all 14 component categories, plus a subprogram whose initial state is also final. It asserts category coverage and final-state counts. Before the fix, the regression failed only on the six multiple-final-state diagnostics for the subprogram cases; afterward it passes without diagnostics. The regression commit precedes the production-fix commit.Update the existing semantic tests, BA Xtext integration test, characterization baselines, and conformance finding G15. Existing checks for missing final states, invalid initial and complete states, and outgoing transitions from final-only states remain covered.
Validation:
git diff --checkpassed; worktree clean.Dependencies: none; based directly on
master.Residual risk is limited to consumers that assumed subprogram behavior has a single final state. This change does not introduce or enforce a deterministic implementation profile.