osate / osate2

Open Source AADL2 Tool Environment
http://osate.org
Eclipse Public License 2.0
35 stars 8 forks source link

Missing validation for CompositeState.typedToken #2858

Open joeseibel opened 1 year ago

joeseibel commented 1 year ago

When a composite state specifies error types in curly braces, the validator should check that there is only one type token specified. The meta-model and grammar allow a type set with multiple types, but only one type or product should be permitted. The following model should have errors:

package missing_validation
public
  system s
    features
      f1: in feature;
      f2: in feature;
    annex EMV2 {**
      use types ErrorLibrary;
      use behavior missing_validation::machine1;

      error propagations
        f1: in propagation {CommonErrors};
        f2: in propagation {CommonErrors};
      end propagations;

      composite error behavior
        states
          composite1: [in f1]-> state1 {ServiceError, ItemTimingError};
          composite2: [in f2]-> state2 {CommonErrors};
      end composite;
    **};
  end s;

  annex EMV2 {**
    error behavior machine1
      use types ErrorLibrary;
      states
        state1: initial state {CommonErrors};
        state2: state {CommonErrors};
    end behavior;
  **};
end missing_validation;

There should be an error on composite1 because it lists multiple types and there should be an error on composite2 because CommonErrors is a type set.