浏览代码

Added Test Scenario handling

jos.itemis@gmail.com 13 年之前
父节点
当前提交
218808f85c

+ 42 - 0
TestScenarios/.cproject

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?>
+
+<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+	<storageModule moduleId="org.eclipse.cdt.core.settings">
+		<cconfiguration id="org.eclipse.cdt.core.default.config.48584567">
+			<storageModule buildSystemId="org.eclipse.cdt.core.defaultConfigDataProvider" id="org.eclipse.cdt.core.default.config.48584567" moduleId="org.eclipse.cdt.core.settings" name="Configuration">
+				<externalSettings/>
+				<extensions/>
+			</storageModule>
+			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+		</cconfiguration>
+	</storageModule>
+	<storageModule moduleId="org.eclipse.cdt.core.pathentry"/>
+	<storageModule moduleId="refreshScope"/>
+	<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
+		<buildTargets>
+			<target name="all" path="src-gen/InterfaceTest.sct" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
+				<buildCommand>make</buildCommand>
+				<buildTarget>all</buildTarget>
+				<stopOnError>true</stopOnError>
+				<useDefaultCommand>true</useDefaultCommand>
+				<runAllBuilders>true</runAllBuilders>
+			</target>
+			<target name="all" path="build" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
+				<buildCommand>make</buildCommand>
+				<buildArguments/>
+				<buildTarget>all</buildTarget>
+				<stopOnError>true</stopOnError>
+				<useDefaultCommand>true</useDefaultCommand>
+				<runAllBuilders>true</runAllBuilders>
+			</target>
+			<target name="all" path="src-gen-c/InterfaceTest.sct/build" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
+				<buildCommand>make</buildCommand>
+				<buildTarget>all</buildTarget>
+				<stopOnError>true</stopOnError>
+				<useDefaultCommand>true</useDefaultCommand>
+				<runAllBuilders>true</runAllBuilders>
+			</target>
+		</buildTargets>
+	</storageModule>
+</cproject>

+ 76 - 0
TestScenarios/.project

@@ -10,8 +10,84 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+			<triggers>clean,full,incremental,</triggers>
+			<arguments>
+				<dictionary>
+					<key>?name?</key>
+					<value></value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.append_environment</key>
+					<value>true</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.autoBuildTarget</key>
+					<value>all</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.buildArguments</key>
+					<value></value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.buildCommand</key>
+					<value>make</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
+					<value>clean</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.contents</key>
+					<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
+					<value>false</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
+					<value>true</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.enableFullBuild</key>
+					<value>true</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.fullBuildTarget</key>
+					<value>all</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.stopOnError</key>
+					<value>true</value>
+				</dictionary>
+				<dictionary>
+					<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
+					<value>true</value>
+				</dictionary>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+			<triggers>full,incremental,</triggers>
+			<arguments>
+			</arguments>
+		</buildCommand>
+
+
 	</buildSpec>
 	<natures>
 		<nature>org.yakindu.sct.builder.SCTNature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.cdt.core.cnature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
 	</natures>
 </projectDescription>
+

+ 2 - 1
TestScenarios/.settings/org.eclipse.core.resources.prefs

@@ -1,5 +1,6 @@
-#Fri Oct 14 15:07:26 CEST 2011
+#Tue Nov 08 14:00:31 CET 2011
 eclipse.preferences.version=1
+encoding//TestModels/InterfaceTest.sct=UTF-8
 encoding//TestModels/Test_DeepHistory.sct=UTF-8
 encoding//TestModels/Test_Hierarchy.sct=UTF-8
 encoding//TestModels/Test_LocalActions.sct=UTF-8

+ 9 - 0
TestScenarios/CMakeLists.txt

@@ -0,0 +1,9 @@
+cmake_minimum_required(VERSION 2.8)
+
+enable_testing()
+
+add_definitions( -Wall -O0 -g)
+
+add_subdirectory(src-gen-c/InterfaceTest.sct)
+add_subdirectory(test-c/InterfaceTest)
+

+ 283 - 0
TestScenarios/TestModels/InterfaceTest.sct

@@ -0,0 +1,283 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/2.0.0" xmlns:stext="http://www.yakindu.org/sct/statechart/SText">
+  <sgraph:Statechart xmi:id="_p-KfMAn1EeGuZq6TN7cDtg" name="InterfaceTest" expression="interface:&#xA;&#xA;in event event1&#xA;out event event2 : integer&#xA;&#xA;var var1 : boolean&#xA;var var2 : real = 2.3&#xA;var var3 : integer = 1&#xA;&#xA;interface other:&#xA;&#xA;in event event3&#xA;out event event4&#xA;&#xA;var v1 : integer&#xA;&#xA;interface third:&#xA;&#xA;in event event5&#xA;out event event6 : boolean&#xA;&#xA;var v1 : real&#xA;">
+    <scopes xsi:type="stext:InterfaceScope" xmi:id="_6nzkYArZEeGz3Ki5JUYy2w">
+      <declarations xsi:type="stext:EventDefinition" xmi:id="_6n0LcArZEeGz3Ki5JUYy2w" name="event1" direction="in"/>
+      <declarations xsi:type="stext:EventDefinition" xmi:id="_6n0LcQrZEeGz3Ki5JUYy2w" name="event2" direction="out" type="integer"/>
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_6n0LcgrZEeGz3Ki5JUYy2w" name="var1" type="boolean"/>
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_6n0LcwrZEeGz3Ki5JUYy2w" name="var2" type="real" initialValue="2.3"/>
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_6n0LdArZEeGz3Ki5JUYy2w" name="var3" type="integer" initialValue="1"/>
+    </scopes>
+    <scopes xsi:type="stext:InterfaceScope" xmi:id="_6n0LdQrZEeGz3Ki5JUYy2w" name="other">
+      <declarations xsi:type="stext:EventDefinition" xmi:id="_6n0LdgrZEeGz3Ki5JUYy2w" name="event3" direction="in"/>
+      <declarations xsi:type="stext:EventDefinition" xmi:id="_6n0LdwrZEeGz3Ki5JUYy2w" name="event4" direction="out"/>
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_6n0LeArZEeGz3Ki5JUYy2w" name="v1" type="integer"/>
+    </scopes>
+    <scopes xsi:type="stext:InterfaceScope" xmi:id="_6n0LeQrZEeGz3Ki5JUYy2w" name="third">
+      <declarations xsi:type="stext:EventDefinition" xmi:id="_6n0LegrZEeGz3Ki5JUYy2w" name="event5" direction="in"/>
+      <declarations xsi:type="stext:EventDefinition" xmi:id="_6n0LewrZEeGz3Ki5JUYy2w" name="event6" direction="out" type="boolean"/>
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_6n0LfArZEeGz3Ki5JUYy2w" name="v1" type="real"/>
+    </scopes>
+    <regions xmi:id="_p-LtUgn1EeGuZq6TN7cDtg" name="main region">
+      <vertices xsi:type="sgraph:Entry" xmi:id="_p-RM4Qn1EeGuZq6TN7cDtg">
+        <outgoingTransitions xmi:id="_p-TpIwn1EeGuZq6TN7cDtg" target="_p-Rz9wn1EeGuZq6TN7cDtg"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_p-Rz9wn1EeGuZq6TN7cDtg" name="state1" incomingTransitions="_p-TpIwn1EeGuZq6TN7cDtg _IduY8An2EeGuZq6TN7cDtg _aUmT4An2EeGuZq6TN7cDtg _ezdE0An2EeGuZq6TN7cDtg">
+        <outgoingTransitions xmi:id="_Fp0t8An2EeGuZq6TN7cDtg" expression="event1[var2 > 0]" target="_DQwk0An2EeGuZq6TN7cDtg">
+          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_6n1ZkArZEeGz3Ki5JUYy2w">
+            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_6n1ZkQrZEeGz3Ki5JUYy2w" event="_6n0LcArZEeGz3Ki5JUYy2w"/>
+            <guardExpression xsi:type="stext:LogicalRelationExpression" xmi:id="_6n1ZkgrZEeGz3Ki5JUYy2w" operator=">">
+              <leftOperand xsi:type="stext:ElementReferenceExpression" xmi:id="_6n1ZkwrZEeGz3Ki5JUYy2w" value="_6n0LcwrZEeGz3Ki5JUYy2w"/>
+              <rightOperand xsi:type="stext:PrimitiveValueExpression" xmi:id="_6n1ZlArZEeGz3Ki5JUYy2w" value="0"/>
+            </guardExpression>
+          </trigger>
+        </outgoingTransitions>
+        <outgoingTransitions xmi:id="_Wx7eYAn2EeGuZq6TN7cDtg" expression="other.event3[var3 == 1]" target="_N8IiYAn2EeGuZq6TN7cDtg">
+          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_6n3OwArZEeGz3Ki5JUYy2w">
+            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_6n3OwQrZEeGz3Ki5JUYy2w" event="_6n0LdgrZEeGz3Ki5JUYy2w"/>
+            <guardExpression xsi:type="stext:LogicalRelationExpression" xmi:id="_6n3OwgrZEeGz3Ki5JUYy2w" operator="==">
+              <leftOperand xsi:type="stext:ElementReferenceExpression" xmi:id="_6n3OwwrZEeGz3Ki5JUYy2w" value="_6n0LdArZEeGz3Ki5JUYy2w"/>
+              <rightOperand xsi:type="stext:PrimitiveValueExpression" xmi:id="_6n3OxArZEeGz3Ki5JUYy2w" value="1"/>
+            </guardExpression>
+          </trigger>
+        </outgoingTransitions>
+        <outgoingTransitions xmi:id="_dQp1UAn2EeGuZq6TN7cDtg" expression="third.event5[var1 == true]" target="_b6-b0An2EeGuZq6TN7cDtg">
+          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_6n5rAArZEeGz3Ki5JUYy2w">
+            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_6n5rAQrZEeGz3Ki5JUYy2w" event="_6n0LegrZEeGz3Ki5JUYy2w"/>
+            <guardExpression xsi:type="stext:LogicalRelationExpression" xmi:id="_6n5rAgrZEeGz3Ki5JUYy2w" operator="==">
+              <leftOperand xsi:type="stext:ElementReferenceExpression" xmi:id="_6n5rAwrZEeGz3Ki5JUYy2w" value="_6n0LcgrZEeGz3Ki5JUYy2w"/>
+              <rightOperand xsi:type="stext:PrimitiveValueExpression" xmi:id="_6n5rBArZEeGz3Ki5JUYy2w" value="true"/>
+            </guardExpression>
+          </trigger>
+        </outgoingTransitions>
+        <scopes xmi:id="_6n0ygArZEeGz3Ki5JUYy2w"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_DQwk0An2EeGuZq6TN7cDtg" name="state2" incomingTransitions="_Fp0t8An2EeGuZq6TN7cDtg" expression="entry / raise event2 : 22;">
+        <outgoingTransitions xmi:id="_IduY8An2EeGuZq6TN7cDtg" expression="event1" target="_p-Rz9wn1EeGuZq6TN7cDtg">
+          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_6n9VYArZEeGz3Ki5JUYy2w">
+            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_6n9VYQrZEeGz3Ki5JUYy2w" event="_6n0LcArZEeGz3Ki5JUYy2w"/>
+          </trigger>
+        </outgoingTransitions>
+        <scopes xmi:id="_6n7gMArZEeGz3Ki5JUYy2w">
+          <declarations xsi:type="stext:LocalReaction" xmi:id="_6n7gMQrZEeGz3Ki5JUYy2w">
+            <trigger xsi:type="stext:ReactionTrigger" xmi:id="_6n7gMgrZEeGz3Ki5JUYy2w">
+              <triggers xsi:type="stext:EntryEvent" xmi:id="_6n7gMwrZEeGz3Ki5JUYy2w"/>
+            </trigger>
+            <effect xsi:type="stext:ReactionEffect" xmi:id="_6n7gNArZEeGz3Ki5JUYy2w">
+              <actions xsi:type="stext:EventRaising" xmi:id="_6n7gNQrZEeGz3Ki5JUYy2w" event="_6n0LcQrZEeGz3Ki5JUYy2w">
+                <value xsi:type="stext:PrimitiveValueExpression" xmi:id="_6n7gNgrZEeGz3Ki5JUYy2w" value="22"/>
+              </actions>
+            </effect>
+          </declarations>
+        </scopes>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_N8IiYAn2EeGuZq6TN7cDtg" name="state3" incomingTransitions="_Wx7eYAn2EeGuZq6TN7cDtg" expression="entry / raise other.event4;">
+        <outgoingTransitions xmi:id="_aUmT4An2EeGuZq6TN7cDtg" expression="other.event3" target="_p-Rz9wn1EeGuZq6TN7cDtg">
+          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_6n_xoArZEeGz3Ki5JUYy2w">
+            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_6n_xoQrZEeGz3Ki5JUYy2w" event="_6n0LdgrZEeGz3Ki5JUYy2w"/>
+          </trigger>
+        </outgoingTransitions>
+        <scopes xmi:id="_6n-jgArZEeGz3Ki5JUYy2w">
+          <declarations xsi:type="stext:LocalReaction" xmi:id="_6n-jgQrZEeGz3Ki5JUYy2w">
+            <trigger xsi:type="stext:ReactionTrigger" xmi:id="_6n-jggrZEeGz3Ki5JUYy2w">
+              <triggers xsi:type="stext:EntryEvent" xmi:id="_6n-jgwrZEeGz3Ki5JUYy2w"/>
+            </trigger>
+            <effect xsi:type="stext:ReactionEffect" xmi:id="_6n-jhArZEeGz3Ki5JUYy2w">
+              <actions xsi:type="stext:EventRaising" xmi:id="_6n-jhQrZEeGz3Ki5JUYy2w" event="_6n0LdwrZEeGz3Ki5JUYy2w"/>
+            </effect>
+          </declarations>
+        </scopes>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_b6-b0An2EeGuZq6TN7cDtg" name="state4" incomingTransitions="_dQp1UAn2EeGuZq6TN7cDtg" expression="entry / raise third.event6 : true;">
+        <outgoingTransitions xmi:id="_ezdE0An2EeGuZq6TN7cDtg" expression="third.event5" target="_p-Rz9wn1EeGuZq6TN7cDtg">
+          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_6oC08ArZEeGz3Ki5JUYy2w">
+            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_6oC08QrZEeGz3Ki5JUYy2w" event="_6n0LegrZEeGz3Ki5JUYy2w"/>
+          </trigger>
+        </outgoingTransitions>
+        <scopes xmi:id="_6oA_wArZEeGz3Ki5JUYy2w">
+          <declarations xsi:type="stext:LocalReaction" xmi:id="_6oA_wQrZEeGz3Ki5JUYy2w">
+            <trigger xsi:type="stext:ReactionTrigger" xmi:id="_6oA_wgrZEeGz3Ki5JUYy2w">
+              <triggers xsi:type="stext:EntryEvent" xmi:id="_6oA_wwrZEeGz3Ki5JUYy2w"/>
+            </trigger>
+            <effect xsi:type="stext:ReactionEffect" xmi:id="_6oA_xArZEeGz3Ki5JUYy2w">
+              <actions xsi:type="stext:EventRaising" xmi:id="_6oA_xQrZEeGz3Ki5JUYy2w" event="_6n0LewrZEeGz3Ki5JUYy2w">
+                <value xsi:type="stext:PrimitiveValueExpression" xmi:id="_6oA_xgrZEeGz3Ki5JUYy2w" value="true"/>
+              </actions>
+            </effect>
+          </declarations>
+        </scopes>
+      </vertices>
+    </regions>
+  </sgraph:Statechart>
+  <notation:Diagram xmi:id="_p-LtUAn1EeGuZq6TN7cDtg" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_p-KfMAn1EeGuZq6TN7cDtg" measurementUnit="Pixel">
+    <children xmi:id="_p-OJkAn1EeGuZq6TN7cDtg" type="Region" element="_p-LtUgn1EeGuZq6TN7cDtg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_p-P-wAn1EeGuZq6TN7cDtg" type="RegionName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_p-P-wQn1EeGuZq6TN7cDtg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_p-P-wgn1EeGuZq6TN7cDtg"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_p-Ql0An1EeGuZq6TN7cDtg" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+        <children xmi:id="_p-RM4gn1EeGuZq6TN7cDtg" type="Entry" element="_p-RM4Qn1EeGuZq6TN7cDtg">
+          <children xmi:id="_p-Rz8An1EeGuZq6TN7cDtg" type="BorderItemLabelContainer">
+            <children xsi:type="notation:DecorationNode" xmi:id="_p-Rz8wn1EeGuZq6TN7cDtg" type="BorderItemLabel">
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_p-Rz9An1EeGuZq6TN7cDtg"/>
+              <layoutConstraint xsi:type="notation:Location" xmi:id="_p-Rz9Qn1EeGuZq6TN7cDtg"/>
+            </children>
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_p-Rz8Qn1EeGuZq6TN7cDtg" fontName="Verdana" lineColor="4210752"/>
+            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_p-Rz8gn1EeGuZq6TN7cDtg"/>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_p-RM4wn1EeGuZq6TN7cDtg" fontName="Verdana" lineColor="4210752"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_p-Rz9gn1EeGuZq6TN7cDtg" x="70" y="20"/>
+        </children>
+        <children xmi:id="_p-SbAQn1EeGuZq6TN7cDtg" type="State" element="_p-Rz9wn1EeGuZq6TN7cDtg">
+          <children xsi:type="notation:DecorationNode" xmi:id="_p-TCEAn1EeGuZq6TN7cDtg" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_p-TCEQn1EeGuZq6TN7cDtg"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_p-TCEgn1EeGuZq6TN7cDtg"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_p-TCEwn1EeGuZq6TN7cDtg" type="StateTextCompartment" collapsed="true">
+            <children xsi:type="notation:Shape" xmi:id="_p-TCFAn1EeGuZq6TN7cDtg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_p-TCFQn1EeGuZq6TN7cDtg"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_p-TpIAn1EeGuZq6TN7cDtg" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_p-SbAgn1EeGuZq6TN7cDtg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_p-SbAwn1EeGuZq6TN7cDtg"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_p-TpIQn1EeGuZq6TN7cDtg"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_p-TpIgn1EeGuZq6TN7cDtg" x="64" y="73"/>
+        </children>
+        <children xmi:id="_DQ-AMAn2EeGuZq6TN7cDtg" type="State" element="_DQwk0An2EeGuZq6TN7cDtg">
+          <children xsi:type="notation:DecorationNode" xmi:id="_DQ-nQAn2EeGuZq6TN7cDtg" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_DQ-nQQn2EeGuZq6TN7cDtg"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_DQ-nQgn2EeGuZq6TN7cDtg"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_DQ-nQwn2EeGuZq6TN7cDtg" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_DQ-nRAn2EeGuZq6TN7cDtg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_DQ-nRQn2EeGuZq6TN7cDtg"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_DQ_OUAn2EeGuZq6TN7cDtg" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_DQ-AMQn2EeGuZq6TN7cDtg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_DQ-AMgn2EeGuZq6TN7cDtg"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_DQ_OUQn2EeGuZq6TN7cDtg"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_DQ-AMwn2EeGuZq6TN7cDtg" x="251" y="28" width="192"/>
+        </children>
+        <children xmi:id="_N8RsUAn2EeGuZq6TN7cDtg" type="State" element="_N8IiYAn2EeGuZq6TN7cDtg">
+          <children xsi:type="notation:DecorationNode" xmi:id="_N8STYAn2EeGuZq6TN7cDtg" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_N8STYQn2EeGuZq6TN7cDtg"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_N8STYgn2EeGuZq6TN7cDtg"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_N8S6cAn2EeGuZq6TN7cDtg" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_N8S6cQn2EeGuZq6TN7cDtg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_N8S6cgn2EeGuZq6TN7cDtg"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_N8S6cwn2EeGuZq6TN7cDtg" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_N8RsUQn2EeGuZq6TN7cDtg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_N8RsUgn2EeGuZq6TN7cDtg"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_N8ThgAn2EeGuZq6TN7cDtg"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_N8RsUwn2EeGuZq6TN7cDtg" x="266" y="153"/>
+        </children>
+        <children xmi:id="_b7G-sAn2EeGuZq6TN7cDtg" type="State" element="_b6-b0An2EeGuZq6TN7cDtg">
+          <children xsi:type="notation:DecorationNode" xmi:id="_b7HlwAn2EeGuZq6TN7cDtg" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_b7HlwQn2EeGuZq6TN7cDtg"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_b7Hlwgn2EeGuZq6TN7cDtg"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_b7Hlwwn2EeGuZq6TN7cDtg" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_b7HlxAn2EeGuZq6TN7cDtg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_b7HlxQn2EeGuZq6TN7cDtg"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_b7Hlxgn2EeGuZq6TN7cDtg" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_b7G-sQn2EeGuZq6TN7cDtg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_b7G-sgn2EeGuZq6TN7cDtg"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_b7IM0An2EeGuZq6TN7cDtg"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_b7G-swn2EeGuZq6TN7cDtg" x="54" y="273"/>
+        </children>
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_p-Ql0Qn1EeGuZq6TN7cDtg"/>
+      </children>
+      <styles xsi:type="notation:ShapeStyle" xmi:id="_p-OJkQn1EeGuZq6TN7cDtg" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_p-RM4An1EeGuZq6TN7cDtg" x="220" y="10" width="651" height="400"/>
+    </children>
+    <children xsi:type="notation:Shape" xmi:id="_p-VeUwn1EeGuZq6TN7cDtg" type="StatechartText" fontName="Verdana" lineColor="4210752">
+      <children xsi:type="notation:DecorationNode" xmi:id="_p-WFYAn1EeGuZq6TN7cDtg" type="StatechartName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_p-WFYQn1EeGuZq6TN7cDtg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_p-WFYgn1EeGuZq6TN7cDtg"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_p-WFYwn1EeGuZq6TN7cDtg" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_p-WFZAn1EeGuZq6TN7cDtg"/>
+      </children>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_p-WscAn1EeGuZq6TN7cDtg" x="5" y="10" width="200" height="400"/>
+    </children>
+    <styles xsi:type="notation:DiagramStyle" xmi:id="_p-LtUQn1EeGuZq6TN7cDtg"/>
+    <edges xmi:id="_p-U3QAn1EeGuZq6TN7cDtg" type="Transition" element="_p-TpIwn1EeGuZq6TN7cDtg" source="_p-RM4gn1EeGuZq6TN7cDtg" target="_p-SbAQn1EeGuZq6TN7cDtg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_p-VeUAn1EeGuZq6TN7cDtg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_p-VeUQn1EeGuZq6TN7cDtg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_p-VeUgn1EeGuZq6TN7cDtg" y="40"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_p-U3QQn1EeGuZq6TN7cDtg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_p-U3Qwn1EeGuZq6TN7cDtg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_p-U3Qgn1EeGuZq6TN7cDtg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    </edges>
+    <edges xmi:id="_Fp3KMAn2EeGuZq6TN7cDtg" type="Transition" element="_Fp0t8An2EeGuZq6TN7cDtg" source="_p-SbAQn1EeGuZq6TN7cDtg" target="_DQ-AMAn2EeGuZq6TN7cDtg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_Fp3xQQn2EeGuZq6TN7cDtg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_Fp3xQgn2EeGuZq6TN7cDtg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_Fp3xQwn2EeGuZq6TN7cDtg" x="-2" y="-15"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_Fp3KMQn2EeGuZq6TN7cDtg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_Fp3xQAn2EeGuZq6TN7cDtg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_Fp3KMgn2EeGuZq6TN7cDtg" points="[25, -6, -175, -6]$[202, -31, 2, -31]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_KAl9MArjEeGz3Ki5JUYy2w" id="(0.03125,0.42857142857142855)"/>
+    </edges>
+    <edges xmi:id="_IdwOIAn2EeGuZq6TN7cDtg" type="Transition" element="_IduY8An2EeGuZq6TN7cDtg" source="_DQ-AMAn2EeGuZq6TN7cDtg" target="_p-SbAQn1EeGuZq6TN7cDtg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_Idw1MQn2EeGuZq6TN7cDtg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_Idw1Mgn2EeGuZq6TN7cDtg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_Idw1Mwn2EeGuZq6TN7cDtg" x="3" y="-9"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_IdwOIQn2EeGuZq6TN7cDtg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_Idw1MAn2EeGuZq6TN7cDtg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_IdwOIgn2EeGuZq6TN7cDtg" points="[-24, 2, 155, -13]$[-175, 14, 4, -1]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_L_i54An2EeGuZq6TN7cDtg" id="(0.02040816326530612,0.7619047619047619)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_LZZf4An2EeGuZq6TN7cDtg" id="(0.9183673469387755,0.7301587301587301)"/>
+    </edges>
+    <edges xmi:id="_Wx-hsAn2EeGuZq6TN7cDtg" type="Transition" element="_Wx7eYAn2EeGuZq6TN7cDtg" source="_p-SbAQn1EeGuZq6TN7cDtg" target="_N8RsUAn2EeGuZq6TN7cDtg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_Wx_IwAn2EeGuZq6TN7cDtg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_Wx_IwQn2EeGuZq6TN7cDtg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_Wx_Iwgn2EeGuZq6TN7cDtg" x="47" y="-17"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_Wx-hsQn2EeGuZq6TN7cDtg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_Wx-hswn2EeGuZq6TN7cDtg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_Wx-hsgn2EeGuZq6TN7cDtg" points="[25, 15, -173, -105]$[176, 110, -22, -10]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_Wy7j8An2EeGuZq6TN7cDtg" id="(0.15384615384615385,0.1746031746031746)"/>
+    </edges>
+    <edges xmi:id="_aUowIAn2EeGuZq6TN7cDtg" type="Transition" element="_aUmT4An2EeGuZq6TN7cDtg" source="_N8RsUAn2EeGuZq6TN7cDtg" target="_p-SbAQn1EeGuZq6TN7cDtg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_aUowJAn2EeGuZq6TN7cDtg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_aUowJQn2EeGuZq6TN7cDtg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_aUpXMAn2EeGuZq6TN7cDtg" x="4" y="-16"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_aUowIQn2EeGuZq6TN7cDtg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_aUowIwn2EeGuZq6TN7cDtg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_aUowIgn2EeGuZq6TN7cDtg" points="[-9, -6, 180, 106]$[-194, -97, -5, 15]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_aVlLUAn2EeGuZq6TN7cDtg" id="(0.06293706293706294,0.31746031746031744)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_aVlLUQn2EeGuZq6TN7cDtg" id="(0.40816326530612246,0.7619047619047619)"/>
+    </edges>
+    <edges xmi:id="_dQs4oAn2EeGuZq6TN7cDtg" type="Transition" element="_dQp1UAn2EeGuZq6TN7cDtg" source="_p-SbAQn1EeGuZq6TN7cDtg" target="_b7G-sAn2EeGuZq6TN7cDtg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_dQtfsQn2EeGuZq6TN7cDtg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_dQtfsgn2EeGuZq6TN7cDtg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_dQtfswn2EeGuZq6TN7cDtg" x="82" y="-83"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_dQs4oQn2EeGuZq6TN7cDtg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_dQtfsAn2EeGuZq6TN7cDtg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_dQs4ogn2EeGuZq6TN7cDtg" points="[4, 32, -15, -195]$[28, 196, 9, -31]"/>
+    </edges>
+    <edges xmi:id="_ezgIIAn2EeGuZq6TN7cDtg" type="Transition" element="_ezdE0An2EeGuZq6TN7cDtg" source="_b7G-sAn2EeGuZq6TN7cDtg" target="_p-SbAQn1EeGuZq6TN7cDtg">
+      <children xsi:type="notation:DecorationNode" xmi:id="_ezgIJAn2EeGuZq6TN7cDtg" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_ezgIJQn2EeGuZq6TN7cDtg"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_ezgIJgn2EeGuZq6TN7cDtg" x="1" y="-24"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_ezgIIQn2EeGuZq6TN7cDtg" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_ezgIIwn2EeGuZq6TN7cDtg" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_ezgIIgn2EeGuZq6TN7cDtg" points="[-3, -23, 18, 198]$[-27, -222, -6, -1]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_e0iC4An2EeGuZq6TN7cDtg" id="(0.16326530612244897,0.36507936507936506)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_e0iC4Qn2EeGuZq6TN7cDtg" id="(0.12244897959183673,0.4603174603174603)"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>

+ 9 - 0
TestScenarios/test-c/InterfaceTest/CMakeLists.txt

@@ -0,0 +1,9 @@
+
+
+include_directories(../../src-gen-c/InterfaceTest.sct)
+
+add_executable(InterfaceTestStatemachineMain main.c)
+target_link_libraries(InterfaceTestStatemachineMain InterfaceTestStatemachine)
+
+add_test(test_default_interface_good InterfaceTestStatemachineMain "1")
+add_test(test_default_interface_bad InterfaceTestStatemachineMain "2")

+ 212 - 0
TestScenarios/test-c/InterfaceTest/main.c

@@ -0,0 +1,212 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <string.h>
+#include "Timer.h"
+#include "DummyTimer.h"
+#include "InterfaceTestStatemachine.h"
+#include "InterfaceTestEvent.h"
+
+#define MAXEVENTSPERTYPE 4
+const char* stateName[6] = {"State1", "State2", "State3", "State4", "State5", "State6"};
+
+void setupStatemachine(InterfaceTestStatemachine* machine, Timer* dummyTimer, EventPool* eventPool)
+{
+	/* set up dummy Timer */
+	dummyTimer_init(dummyTimer);
+
+	/* Set up Event Pool */
+	eventPool_init_heap(eventPool, event_last, MAXEVENTSPERTYPE);
+
+	/* initialize state machine */
+	interfaceTestStatemachine_init(machine, dummyTimer, eventPool);
+
+}
+
+void teardownStatemachine(InterfaceTestStatemachine* machine, Timer* dummyTimer, EventPool* eventPool)
+{
+	interfaceTestStatemachine_exit(machine);
+	timer_exit(dummyTimer);
+	eventPool_exit(eventPool);
+
+}
+
+/*@Test: test_default_interface good case, guard matches */
+int test_default_interface_good()
+{
+	InterfaceTestStatemachine machine;
+	Timer dummyTimer;
+	EventPool eventPool;
+
+	integer retval;
+
+	setupStatemachine(&machine, &dummyTimer, &eventPool);
+
+
+	/*@Desc: check the initial state */
+	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
+	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State1") == 0);
+
+	/*@Desc: raise event1 */
+	interfaceTest_if_raise_event1(&machine.interface);
+
+	/*@DescInfo: Initial value for the guard is 2.3, which is bigger than 0, so the transition should be taken */
+
+	/*@Desc: run an explicit cycle */
+	interfaceTestStatemachine_runCycle(&machine);
+
+	/*@Desc: check whether the state is set to "State2" */
+	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
+	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State2") == 0);
+
+	/*@Desc: check if the entry event2 is raised */
+	assert( interfaceTest_if_is_event2_raised(&machine.interface, &retval) == bool_true );
+
+	/*@Desc: check if the return value of event2 is set to 22 */
+	assert( retval == 22 );
+
+	/*@Desc: raise event1 */
+	interfaceTest_if_raise_event1(&machine.interface);
+
+	/*@Desc: run an explicit cycle */
+	interfaceTestStatemachine_runCycle(&machine);
+
+	/*@Desc: check whether state has changed back to "State1" */
+	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
+	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State1") == 0);
+
+	/*@Desc: check whether event2 is not raised any more */
+	assert( interfaceTest_if_is_event2_raised(&machine.interface, &retval) == bool_false );
+
+	teardownStatemachine(&machine, &dummyTimer, &eventPool);
+
+	return 0;
+}
+
+/*@Test: test_default_interface good case, guard matches */
+int test_default_interface_bad()
+{
+	InterfaceTestStatemachine machine;
+	Timer dummyTimer;
+	EventPool eventPool;
+
+	integer retval = 55;
+
+	setupStatemachine(&machine, &dummyTimer, &eventPool);
+
+	/*@Desc: check the initial state */
+	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
+	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State1") == 0);
+
+	/*@Desc: set variable var2 to -12.6 */
+	interfaceTest_if_set_var2(&machine.interface, -12.6);
+
+	/*@Desc: raise event1 */
+	interfaceTest_if_raise_event1(&machine.interface);
+
+	/*@DescInfo: Transition should not be taken, as guard with var2 is less than 0 */
+
+	/*@Desc: run an explicit cycle */
+	interfaceTestStatemachine_runCycle(&machine);
+
+	/*@Desc: check whether the state is set to "State2" */
+	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
+	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State1") == 0);
+
+	/*@Desc: check if the entry event2 is NOT raised */
+	assert( interfaceTest_if_is_event2_raised(&machine.interface, &retval) == bool_false );
+
+	/*@Desc: check if the original retval has not been changed */
+	assert( retval == 55 );
+
+	/*@Desc: raise event1 */
+	interfaceTest_if_raise_event1(&machine.interface);
+
+	/*@Desc: set variable var2 to 213.55 (>0) */
+	interfaceTest_if_set_var2(&machine.interface, 213.55);
+
+	/*@Desc: run an explicit cycle */
+	interfaceTestStatemachine_runCycle(&machine);
+
+	/*@Desc: check whether state has changed back to "State2" */
+	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
+	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State2") == 0);
+
+	/*@Desc: check whether event2 is raised */
+	assert( interfaceTest_if_is_event2_raised(&machine.interface, &retval) == bool_true );
+
+	teardownStatemachine(&machine, &dummyTimer, &eventPool);
+
+	return 0;
+}
+
+
+int main(int argc, char** argv)
+{
+	if (argc != 2)
+		return -1;
+
+	switch (atoi(argv[1])) {
+	case 1:
+		return test_default_interface_good();
+	case 2:
+		return test_default_interface_bad();
+	}
+
+	return 0;
+
+	/*
+	InterfaceTestStatemachine machine;
+	Timer dummyTimer;
+	EventPool eventPool;
+
+	integer retval1;
+	boolean retval2;
+//	real retval3;
+
+
+
+	interfaceTestStatemachine_runCycle(&machine);
+
+	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
+	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State3") == 0);
+	assert( interfaceTest_if_other_is_event4_raised(&machine.interfaceOther) == bool_true );
+
+	interfaceTest_if_other_raise_event3(&machine.interfaceOther);
+
+	assert( interfaceTestStatemachine_eventWaiting(&machine) == bool_true );
+
+	interfaceTestStatemachine_runCycle(&machine);
+
+	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
+	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State1") == 0);
+	assert( interfaceTest_if_other_is_event4_raised(&machine.interfaceOther) == bool_false );
+
+
+	interfaceTest_if_third_raise_event5(&machine.interfaceThird);
+	interfaceTest_if_set_var1(&machine.interface, bool_true);
+
+	interfaceTestStatemachine_runCycle(&machine);
+
+	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
+	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State4") == 0);
+	assert( interfaceTest_if_third_is_event6_raised(&machine.interfaceThird, &retval2) == bool_true );
+
+
+	interfaceTest_if_third_raise_event5(&machine.interfaceThird);
+
+	interfaceTestStatemachine_runCycle(&machine);
+
+	printf("%s\n", stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)]);
+	assert( strcmp(stateName[statemachineBase_getState((StatemachineBase*)&machine, 0)], "State1") == 0);
+
+
+	interfaceTestStatemachine_exit(&machine);
+	timer_exit(&dummyTimer);
+	eventPool_exit(&eventPool);
+
+	return(0);
+	*/
+}
+