Echtzeitsysteme / gips

Graph-Based (M)ILP Problem Specification Tool
https://gips.dev
GNU General Public License v3.0
3 stars 1 forks source link

Inconsistent build behavior on some tests (`gips.multilayeredinheritence`) #146

Open maxkratz opened 6 months ago

maxkratz commented 6 months ago

Sometimes (and I cannot find out under which circumstances), the GIPS builder creates invalid gips-model.xmi files for some of the tests and they fail.

Today, I investigated the issue a bit further and I found:

=> Something within GIPS generates non-deterministic broken gips-model.xmi files.


Total diff:

diff --recursive gips.multilayeredinheritencersinit gips.multilayeredinheritencersinit_broken 
diff --color --recursive gips.multilayeredinheritencersinit/bin/gips/multilayeredinheritencersinit/api/gips/gips-model.xmi gips.multilayeredinheritencersinit_broken/bin/gips/multilayeredinheritencersinit/api/gips/gips-model.xmi
4,5c4,5
<   <variables xmi:type="GipsIntermediate:Type" name="C" upperBound="1.0">
<     <type xmi:type="ecore:EClass" href="platform:/resource/gips.multilayeredinheritencemodel/model/Multilayeredinheritencemodel.ecore#//C"/>
---
>   <variables xmi:type="GipsIntermediate:Type" name="A" upperBound="1.0">
>     <type xmi:type="ecore:EClass" href="platform:/resource/gips.multilayeredinheritencemodel/model/Multilayeredinheritencemodel.ecore#//A"/>
10,11c10,11
<   <variables xmi:type="GipsIntermediate:Type" name="A" upperBound="1.0">
<     <type xmi:type="ecore:EClass" href="platform:/resource/gips.multilayeredinheritencemodel/model/Multilayeredinheritencemodel.ecore#//A"/>
---
>   <variables xmi:type="GipsIntermediate:Type" name="C" upperBound="1.0">
>     <type xmi:type="ecore:EClass" href="platform:/resource/gips.multilayeredinheritencemodel/model/Multilayeredinheritencemodel.ecore#//C"/>
13c13
<   <constraints xmi:type="GipsIntermediate:TypeConstraint" name="TypeConstraint0OnA" modelType="//@variables.3">
---
>   <constraints xmi:type="GipsIntermediate:TypeConstraint" name="TypeConstraint0OnA" modelType="//@variables.1">
28c28
<                     <value xmi:type="GipsIntermediate:ContextTypeValue" typeContext="//@variables.3"/>
---
>                     <value xmi:type="GipsIntermediate:ContextTypeValue" typeContext="//@variables.1"/>
33c33
<                     <value xmi:type="GipsIntermediate:ContextTypeFeatureValue" typeContext="//@variables.3">
---
>                     <value xmi:type="GipsIntermediate:ContextTypeFeatureValue" typeContext="//@variables.1">
89c89
<   <constraints xmi:type="GipsIntermediate:TypeConstraint" name="TypeConstraint2OnC" modelType="//@variables.1">
---
>   <constraints xmi:type="GipsIntermediate:TypeConstraint" name="TypeConstraint2OnC" modelType="//@variables.3">
104c104
<                     <value xmi:type="GipsIntermediate:ContextTypeValue" typeContext="//@variables.1"/>
---
>                     <value xmi:type="GipsIntermediate:ContextTypeValue" typeContext="//@variables.3"/>
109c109
<                     <value xmi:type="GipsIntermediate:ContextTypeFeatureValue" typeContext="//@variables.1">
---
>                     <value xmi:type="GipsIntermediate:ContextTypeFeatureValue" typeContext="//@variables.3">
Binary files gips.multilayeredinheritencersinit/bin/gips/multilayeredinheritencersinit/hipe/engine/actor/DispatchActor.class and gips.multilayeredinheritencersinit_broken/bin/gips/multilayeredinheritencersinit/hipe/engine/actor/DispatchActor.class differ
Binary files gips.multilayeredinheritencersinit/bin/gips/multilayeredinheritencersinit/hipe/engine/actor/NotificationActor.class and gips.multilayeredinheritencersinit_broken/bin/gips/multilayeredinheritencersinit/hipe/engine/actor/NotificationActor.class differ
diff --color --recursive gips.multilayeredinheritencersinit/src-gen/gips/multilayeredinheritencersinit/api/gips/gips-model.xmi gips.multilayeredinheritencersinit_broken/src-gen/gips/multilayeredinheritencersinit/api/gips/gips-model.xmi
4,5c4,5
<   <variables xmi:type="GipsIntermediate:Type" name="C" upperBound="1.0">
<     <type xmi:type="ecore:EClass" href="platform:/resource/gips.multilayeredinheritencemodel/model/Multilayeredinheritencemodel.ecore#//C"/>
---
>   <variables xmi:type="GipsIntermediate:Type" name="A" upperBound="1.0">
>     <type xmi:type="ecore:EClass" href="platform:/resource/gips.multilayeredinheritencemodel/model/Multilayeredinheritencemodel.ecore#//A"/>
10,11c10,11
<   <variables xmi:type="GipsIntermediate:Type" name="A" upperBound="1.0">
<     <type xmi:type="ecore:EClass" href="platform:/resource/gips.multilayeredinheritencemodel/model/Multilayeredinheritencemodel.ecore#//A"/>
---
>   <variables xmi:type="GipsIntermediate:Type" name="C" upperBound="1.0">
>     <type xmi:type="ecore:EClass" href="platform:/resource/gips.multilayeredinheritencemodel/model/Multilayeredinheritencemodel.ecore#//C"/>
13c13
<   <constraints xmi:type="GipsIntermediate:TypeConstraint" name="TypeConstraint0OnA" modelType="//@variables.3">
---
>   <constraints xmi:type="GipsIntermediate:TypeConstraint" name="TypeConstraint0OnA" modelType="//@variables.1">
28c28
<                     <value xmi:type="GipsIntermediate:ContextTypeValue" typeContext="//@variables.3"/>
---
>                     <value xmi:type="GipsIntermediate:ContextTypeValue" typeContext="//@variables.1"/>
33c33
<                     <value xmi:type="GipsIntermediate:ContextTypeFeatureValue" typeContext="//@variables.3">
---
>                     <value xmi:type="GipsIntermediate:ContextTypeFeatureValue" typeContext="//@variables.1">
89c89
<   <constraints xmi:type="GipsIntermediate:TypeConstraint" name="TypeConstraint2OnC" modelType="//@variables.1">
---
>   <constraints xmi:type="GipsIntermediate:TypeConstraint" name="TypeConstraint2OnC" modelType="//@variables.3">
104c104
<                     <value xmi:type="GipsIntermediate:ContextTypeValue" typeContext="//@variables.1"/>
---
>                     <value xmi:type="GipsIntermediate:ContextTypeValue" typeContext="//@variables.3"/>
109c109
<                     <value xmi:type="GipsIntermediate:ContextTypeFeatureValue" typeContext="//@variables.1">
---
>                     <value xmi:type="GipsIntermediate:ContextTypeFeatureValue" typeContext="//@variables.3">
diff --color --recursive gips.multilayeredinheritencersinit/src-gen/gips/multilayeredinheritencersinit/hipe/engine/actor/DispatchActor.java gips.multilayeredinheritencersinit_broken/src-gen/gips/multilayeredinheritencersinit/hipe/engine/actor/DispatchActor.java
66,75d65
<       type2addConsumer.put(multilayeredinheritencemodel.MultilayeredinheritencemodelPackage.eINSTANCE.getC(), obj -> {
<           multilayeredinheritencemodel.C _c = (multilayeredinheritencemodel.C) obj;
<           incUtil.newMessage();
<           name2actor.get("A_object").tell(new ObjectAdded<multilayeredinheritencemodel.A>(incUtil, _c), getSelf());
<       });
<       type2addConsumer.put(multilayeredinheritencemodel.MultilayeredinheritencemodelPackage.eINSTANCE.getB(), obj -> {
<           multilayeredinheritencemodel.B _b = (multilayeredinheritencemodel.B) obj;
<           incUtil.newMessage();
<           name2actor.get("A_object").tell(new ObjectAdded<multilayeredinheritencemodel.A>(incUtil, _b), getSelf());
<       });
84a75,84
>       });
>       type2addConsumer.put(multilayeredinheritencemodel.MultilayeredinheritencemodelPackage.eINSTANCE.getB(), obj -> {
>           multilayeredinheritencemodel.B _b = (multilayeredinheritencemodel.B) obj;
>           incUtil.newMessage();
>           name2actor.get("A_object").tell(new ObjectAdded<multilayeredinheritencemodel.A>(incUtil, _b), getSelf());
>       });
>       type2addConsumer.put(multilayeredinheritencemodel.MultilayeredinheritencemodelPackage.eINSTANCE.getC(), obj -> {
>           multilayeredinheritencemodel.C _c = (multilayeredinheritencemodel.C) obj;
>           incUtil.newMessage();
>           name2actor.get("A_object").tell(new ObjectAdded<multilayeredinheritencemodel.A>(incUtil, _c), getSelf());
diff --color --recursive gips.multilayeredinheritencersinit/src-gen/gips/multilayeredinheritencersinit/hipe/engine/actor/NotificationActor.java gips.multilayeredinheritencersinit_broken/src-gen/gips/multilayeredinheritencersinit/hipe/engine/actor/NotificationActor.java
21c21
<       explorationConsumer.put(multilayeredinheritencemodel.MultilayeredinheritencemodelPackage.eINSTANCE.getC(), obj -> {
---
>       explorationConsumer.put(multilayeredinheritencemodel.MultilayeredinheritencemodelPackage.eINSTANCE.getA(), obj -> {
25c25
<       explorationConsumer.put(multilayeredinheritencemodel.MultilayeredinheritencemodelPackage.eINSTANCE.getB(), obj -> {
---
>       explorationConsumer.put(multilayeredinheritencemodel.MultilayeredinheritencemodelPackage.eINSTANCE.getRoot(), obj -> {
26a27,28
>           multilayeredinheritencemodel.Root _root = (multilayeredinheritencemodel.Root) obj;
>           children.addAll(_root.getObjects());
29c31
<       explorationConsumer.put(multilayeredinheritencemodel.MultilayeredinheritencemodelPackage.eINSTANCE.getA(), obj -> {
---
>       explorationConsumer.put(multilayeredinheritencemodel.MultilayeredinheritencemodelPackage.eINSTANCE.getB(), obj -> {
33c35
<       explorationConsumer.put(multilayeredinheritencemodel.MultilayeredinheritencemodelPackage.eINSTANCE.getRoot(), obj -> {
---
>       explorationConsumer.put(multilayeredinheritencemodel.MultilayeredinheritencemodelPackage.eINSTANCE.getC(), obj -> {
35,36d36
<           multilayeredinheritencemodel.Root _root = (multilayeredinheritencemodel.Root) obj;
<           children.addAll(_root.getObjects());
maxkratz commented 6 months ago