Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions ba/doc/conformance.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ The user directed that the report findings be treated as valid and filed without
| G10 ✅ | [#3174](https://github.com/osate/osate2/issues/3174) | V07 | [#3188](https://github.com/osate/osate2/issues/3188) |
| G11 ✅ | [#3175](https://github.com/osate/osate2/issues/3175) | V08 | [#3189](https://github.com/osate/osate2/issues/3189) |
| G12 ✅ | [#3176](https://github.com/osate/osate2/issues/3176) | V09 | [#3190](https://github.com/osate/osate2/issues/3190) |
| G13 ✅ | [#3177](https://github.com/osate/osate2/issues/3177) | V10 | [#3191](https://github.com/osate/osate2/issues/3191) |
| G13 ✅ | [#3177](https://github.com/osate/osate2/issues/3177) | V10 | [#3191](https://github.com/osate/osate2/issues/3191) |
| G14 ✅ | [#3178](https://github.com/osate/osate2/issues/3178) | V11 | [#3192](https://github.com/osate/osate2/issues/3192) |
| G18 | [#3199](https://github.com/osate/osate2/issues/3199) | | |

Expand Down Expand Up @@ -201,7 +201,7 @@ These are bounded findings from the inspected grammar/translator/checker path. E
| V07 | D.5 C1/C2: BA freeze/send operations agree with `Input_Time`/`Output_Time`, or are absent where required. | No BA check referring to these properties was found in the active BA checker/translator/validator code. Core property validation alone does not establish agreement with BA actions. Use models that are individually legal on each side but inconsistent together. |
| V08 | D.6: a complete state cannot be reached while shared data remains locked. | Lock/unlock syntax and holders exist; `Issue2372Test` checks resolved lock references. No path-sensitive lock-balance check was found. Cover a balanced path, an unreleased resource, alternative branches, loops, and wildcard lock/unlock. Parsing a lock operation does not establish this rule. |
| V09 | D.7: right-hand-side variables/data must be initialized; declaration initialization overrides the Data Modeling `Initial_Value` property. | Declaration initializer types and declarative definite initialization are checked by #3190. Explicit declaration initializers and unprefixed `Data_Model::Initial_Value` associations seed the analysis, with declaration initialization taking precedence. Instance-dependent initialization from prefixed property values is tracked by #3230 and blocked by #3229. |
| V10 | D.7 property references are restricted to unitless properties or properties with time units. | Property reference machinery exists, but no explicit end-to-end check of this BA-specific restriction was identified. Add positive unitless/time cases and a property with another units type. Do not infer compliance merely because a property name resolves. |
| V10 | D.7 property references are restricted to unitless properties or properties with time units. | **Addressed by [#3191](https://github.com/osate/osate2/issues/3191):** the validator checks the declared units type of referenced properties, constants, and selected record fields, accepting unitless values and `AADL_Project::Time_Units`. Other units types are reported at the property reference. `Issue3191Test` covers integer and real values, defaults, symbolic element prefixes, record fields, and a custom units type whose literal is named `ms`. Translation retains default values and their written units, and prefixed references retain their owners and property definitions. Effective instance-value selection remains part of #3229. |
| V11 | D.8 LSER/ASER prohibits synchronous called-subprogram type and out/in-out parameters. | The [property set](../../ba/org.osate.ba.contrib/resources/properties/behavior_properties.aadl) matches the standard. Searches of BA and the core AADL validator found no checks consuming `Subprogram_Call_Protocol`; [ba_example_007.aadl](../../ba/org.osate.ba/examples/standard_examples/ba_example_007.aadl) describes the rules in comments but is not negative legality coverage. Add both prohibited combinations for both protocols. |

Some checker comments identify their source as **AADL Behavior Annex draft 0.94**. This matters: names such as `D_3_L1_And_L2_Check` and diagnostics labelled `D.3.(L3)` cannot be assumed to correspond one-for-one to the supplied Rev. A rule ordering. `D_3_L4_Check` is explicitly suspended and returns true with its body commented out. The Rev. A text makes explicit initialization/finalization modeling optional, so suspension of an older check is not automatically a Rev. A defect. Update the traceability by rule meaning before reviving old checks.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
error | semantic | 47 | 10 | 30 | Behavior Annex property references must be unitless or use AADL_Project::Time_Units
error | semantic | 48 | 10 | 31 | Behavior Annex property references must be unitless or use AADL_Project::Time_Units
error | semantic | 49 | 14 | 30 | Behavior Annex property references must be unitless or use AADL_Project::Time_Units
error | semantic | 50 | 15 | 30 | Behavior Annex property references must be unitless or use AADL_Project::Time_Units
error | semantic | 51 | 14 | 42 | Behavior Annex property references must be unitless or use AADL_Project::Time_Units
error | semantic | 52 | 10 | 35 | Behavior Annex property references must be unitless or use AADL_Project::Time_Units
error | semantic | 53 | 10 | 27 | Behavior Annex property references must be unitless or use AADL_Project::Time_Units
error | semantic | 54 | 10 | 39 | Behavior Annex property references must be unitless or use AADL_Project::Time_Units
error | semantic | 55 | 14 | 49 | Behavior Annex property references must be unitless or use AADL_Project::Time_Units
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
annex[0] owner=DisallowedUnits::reader.impl
(AssignmentAction, <null>, 2252, 35)
(AssignmentAction, <null>, 2293, 36)
(AssignmentAction, <null>, 2335, 39)
(AssignmentAction, <null>, 2380, 40)
(AssignmentAction, <null>, 2426, 51)
(AssignmentAction, <null>, 2483, 40)
(AssignmentAction, <null>, 2529, 32)
(AssignmentAction, <null>, 2567, 44)
(AssignmentAction, <null>, 2617, 58)
(BehaviorActionBlock, <null>, 2246, 434)
(BehaviorActionSequence, <null>, 2252, 423)
(BehaviorAnnex, behavior_specification, 2026, 655)
(BehaviorState, done, 2183, 4)
(BehaviorState, start, 2157, 5)
(BehaviorStateGroup, <null>, 2157, 22)
(BehaviorStateGroup, <null>, 2183, 28)
(BehaviorTransition, <null>, 2229, 452)
(BehaviorVariable, b, 2093, 1)
(BehaviorVariable, i, 2039, 1)
(BehaviorVariable, r, 2067, 1)
(BehaviorVariable, s, 2121, 1)
(BehaviorVariableGroup, <null>, 2039, 24)
(BehaviorVariableGroup, <null>, 2067, 22)
(BehaviorVariableGroup, <null>, 2093, 24)
(BehaviorVariableGroup, <null>, 2121, 23)
(HashPropertyReference, <null>, 2257, 30)
(HashPropertyReference, <null>, 2298, 31)
(HashPropertyReference, <null>, 2488, 35)
(HashPropertyReference, <null>, 2534, 27)
(HashPropertyReference, <null>, 2572, 39)
(NamedPropertyField, size, 2606, 5)
(NamedPropertyField, size, 2670, 5)
(PropertyReferenceTail, <null>, 2344, 30)
(PropertyReferenceTail, <null>, 2390, 30)
(PropertyReferenceTail, <null>, 2435, 42)
(PropertyReferenceTail, <null>, 2626, 49)
(Reference, <null>, 2252, 1)
(Reference, <null>, 2293, 1)
(Reference, <null>, 2335, 1)
(Reference, <null>, 2340, 4)
(Reference, <null>, 2380, 1)
(Reference, <null>, 2385, 5)
(Reference, <null>, 2426, 1)
(Reference, <null>, 2431, 4)
(Reference, <null>, 2483, 1)
(Reference, <null>, 2529, 1)
(Reference, <null>, 2567, 1)
(Reference, <null>, 2617, 1)
(Reference, <null>, 2622, 4)
(ReferenceExpression, <null>, 2340, 34)
(ReferenceExpression, <null>, 2385, 35)
(ReferenceExpression, <null>, 2431, 46)
(ReferenceExpression, <null>, 2622, 53)
(ReferenceSegment, i, 2252, 1)
(ReferenceSegment, i, 2335, 1)
(ReferenceSegment, i, 2380, 1)
(ReferenceSegment, i, 2426, 1)
(ReferenceSegment, i, 2483, 1)
(ReferenceSegment, i, 2529, 1)
(ReferenceSegment, i, 2567, 1)
(ReferenceSegment, i, 2617, 1)
(ReferenceSegment, input, 2385, 5)
(ReferenceSegment, r, 2293, 1)
(ReferenceSegment, self, 2340, 4)
(ReferenceSegment, self, 2431, 4)
(ReferenceSegment, self, 2622, 4)
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
annex[0] owner=Issue3191::reader.impl
(AssignmentAction, <null>, 2246, 39)
(AssignmentAction, <null>, 2291, 31)
(AssignmentAction, <null>, 2328, 32)
(AssignmentAction, <null>, 2366, 35)
(AssignmentAction, <null>, 2407, 36)
(AssignmentAction, <null>, 2449, 40)
(AssignmentAction, <null>, 2495, 39)
(AssignmentAction, <null>, 2540, 40)
(AssignmentAction, <null>, 2586, 37)
(AssignmentAction, <null>, 2629, 45)
(AssignmentAction, <null>, 2680, 44)
(BehaviorActionBlock, <null>, 2240, 489)
(BehaviorActionSequence, <null>, 2246, 478)
(BehaviorAnnex, behavior_specification, 2020, 710)
(BehaviorState, done, 2177, 4)
(BehaviorState, start, 2151, 5)
(BehaviorStateGroup, <null>, 2151, 22)
(BehaviorStateGroup, <null>, 2177, 28)
(BehaviorTransition, <null>, 2223, 507)
(BehaviorVariable, b, 2087, 1)
(BehaviorVariable, i, 2033, 1)
(BehaviorVariable, r, 2061, 1)
(BehaviorVariable, s, 2115, 1)
(BehaviorVariableGroup, <null>, 2033, 24)
(BehaviorVariableGroup, <null>, 2061, 22)
(BehaviorVariableGroup, <null>, 2087, 24)
(BehaviorVariableGroup, <null>, 2115, 23)
(HashPropertyReference, <null>, 2251, 34)
(HashPropertyReference, <null>, 2296, 26)
(HashPropertyReference, <null>, 2333, 27)
(HashPropertyReference, <null>, 2371, 30)
(HashPropertyReference, <null>, 2412, 31)
(HashPropertyReference, <null>, 2454, 35)
(HashPropertyReference, <null>, 2634, 40)
(HashPropertyReference, <null>, 2685, 39)
(NamedPropertyField, delay, 2668, 6)
(NamedPropertyField, flag, 2719, 5)
(PropertyReferenceTail, <null>, 2504, 30)
(PropertyReferenceTail, <null>, 2550, 30)
(PropertyReferenceTail, <null>, 2595, 28)
(Reference, <null>, 2246, 1)
(Reference, <null>, 2291, 1)
(Reference, <null>, 2328, 1)
(Reference, <null>, 2366, 1)
(Reference, <null>, 2407, 1)
(Reference, <null>, 2449, 1)
(Reference, <null>, 2495, 1)
(Reference, <null>, 2500, 4)
(Reference, <null>, 2540, 1)
(Reference, <null>, 2545, 5)
(Reference, <null>, 2586, 1)
(Reference, <null>, 2591, 4)
(Reference, <null>, 2629, 1)
(Reference, <null>, 2680, 1)
(ReferenceExpression, <null>, 2500, 34)
(ReferenceExpression, <null>, 2545, 35)
(ReferenceExpression, <null>, 2591, 32)
(ReferenceSegment, b, 2291, 1)
(ReferenceSegment, b, 2680, 1)
(ReferenceSegment, i, 2246, 1)
(ReferenceSegment, i, 2366, 1)
(ReferenceSegment, i, 2449, 1)
(ReferenceSegment, i, 2495, 1)
(ReferenceSegment, i, 2540, 1)
(ReferenceSegment, i, 2586, 1)
(ReferenceSegment, i, 2629, 1)
(ReferenceSegment, input, 2545, 5)
(ReferenceSegment, r, 2407, 1)
(ReferenceSegment, s, 2328, 1)
(ReferenceSegment, self, 2500, 4)
(ReferenceSegment, self, 2591, 4)
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
annex[0] owner=DisallowedUnits::reader.impl
parsedAnnexSubclause : BehaviorAnnex name=behavior_specification
variables[0] : BehaviorVariable name=i
variables[1] : BehaviorVariable name=r
variables[2] : BehaviorVariable name=b
variables[3] : BehaviorVariable name=s
states[0] : BehaviorState name=start
states[1] : BehaviorState name=done
transitions[0] : BehaviorTransition
actions[0] : BehaviorActionBlock
content : BehaviorActionSequence
actions[0] : AssignmentAction
target : BehaviorVariableHolder element=i [BehaviorVariable]
valueExpression : ValueExpression
relations[0] : Relation
firstExpression : SimpleExpression
terms[0] : Term
factors[0] : Factor
firstValue : PropertySetPropertyReference
properties[0] : PropertyNameHolder
property : PropertyExpressionHolder element=IntegerLiteral [IntegerLiteral]
actions[1] : AssignmentAction
target : BehaviorVariableHolder element=r [BehaviorVariable]
valueExpression : ValueExpression
relations[0] : Relation
firstExpression : SimpleExpression
terms[0] : Term
factors[0] : Factor
firstValue : PropertySetPropertyReference
properties[0] : PropertyNameHolder
property : PropertyExpressionHolder element=RealLiteral [RealLiteral]
actions[2] : AssignmentAction
target : BehaviorVariableHolder element=i [BehaviorVariable]
valueExpression : ValueExpression
relations[0] : Relation
firstExpression : SimpleExpression
terms[0] : Term
factors[0] : Factor
firstValue : ClassifierPropertyReference
properties[0] : PropertyNameHolder
property : BasicPropertyHolder element=Issue3191Properties::Size_Int [Property]
actions[3] : AssignmentAction
target : BehaviorVariableHolder element=i [BehaviorVariable]
valueExpression : ValueExpression
relations[0] : Relation
firstExpression : SimpleExpression
terms[0] : Term
factors[0] : Factor
firstValue : ClassifierFeaturePropertyReference
properties[0] : PropertyNameHolder
property : BasicPropertyHolder element=Issue3191Properties::Size_Int [Property]
component : DataPortHolder element=DisallowedUnits::reader.input [DataPort]
actions[4] : AssignmentAction
target : BehaviorVariableHolder element=i [BehaviorVariable]
valueExpression : ValueExpression
relations[0] : Relation
firstExpression : SimpleExpression
terms[0] : Term
factors[0] : Factor
firstValue : ClassifierPropertyReference
properties[0] : PropertyNameHolder
property : BasicPropertyHolder element=Issue3191Properties::Size_Without_Default [Property]
actions[5] : AssignmentAction
target : BehaviorVariableHolder element=i [BehaviorVariable]
valueExpression : ValueExpression
relations[0] : Relation
firstExpression : SimpleExpression
terms[0] : Term
factors[0] : Factor
firstValue : BehaviorPropertyConstant
actions[6] : AssignmentAction
target : BehaviorVariableHolder element=i [BehaviorVariable]
valueExpression : ValueExpression
relations[0] : Relation
firstExpression : SimpleExpression
terms[0] : Term
factors[0] : Factor
firstValue : PropertySetPropertyReference
properties[0] : PropertyNameHolder
property : PropertyExpressionHolder element=IntegerLiteral [IntegerLiteral]
actions[7] : AssignmentAction
target : BehaviorVariableHolder element=i [BehaviorVariable]
valueExpression : ValueExpression
relations[0] : Relation
firstExpression : SimpleExpression
terms[0] : Term
factors[0] : Factor
firstValue : PropertySetPropertyReference
properties[0] : PropertyNameHolder
property : PropertyExpressionHolder element=RecordValue [RecordValue]
properties[1] : PropertyNameHolder
property : PropertyExpressionHolder element=IntegerLiteral [IntegerLiteral]
actions[8] : AssignmentAction
target : BehaviorVariableHolder element=i [BehaviorVariable]
valueExpression : ValueExpression
relations[0] : Relation
firstExpression : SimpleExpression
terms[0] : Term
factors[0] : Factor
firstValue : ClassifierPropertyReference
properties[0] : PropertyNameHolder
property : BasicPropertyHolder element=Issue3191Properties::Record_Without_Default [Property]
properties[1] : PropertyNameHolder
property : BasicPropertyHolder element=Issue3191Properties::Record_Type.size [BasicProperty]
Loading