Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Rentz-Reichert2013-11-18 16:51:11 +0000
committerHenrik Rentz-Reichert2013-11-19 17:36:56 +0000
commitaf70a003bffc78a40b716f493069545a9d94ad5c (patch)
tree43f8136fec492fd07aed57122c0e5f07b7c1770a /tests/org.eclipse.etrice.generator.common.tests
parent6a31f677cdc6076eb2c16d0e5642acc237b3ac5e (diff)
downloadorg.eclipse.etrice-af70a003bffc78a40b716f493069545a9d94ad5c.tar.gz
org.eclipse.etrice-af70a003bffc78a40b716f493069545a9d94ad5c.tar.xz
org.eclipse.etrice-af70a003bffc78a40b716f493069545a9d94ad5c.zip
[runtime.java][generator.java] Bug 422044: add possibility to
store/restore an actor's extended state using POJOs https://bugs.eclipse.org/422044 Change-Id: Iba98c6dff98da807098a82d37e7d8dd8489df180
Diffstat (limited to 'tests/org.eclipse.etrice.generator.common.tests')
-rw-r--r--tests/org.eclipse.etrice.generator.common.tests/models/StaticConfigTest_Java.room2
-rw-r--r--tests/org.eclipse.etrice.generator.common.tests/models/StoreRestore.room219
-rw-r--r--tests/org.eclipse.etrice.generator.common.tests/models/generator.java.tests.etmap3
-rw-r--r--tests/org.eclipse.etrice.generator.common.tests/models/generator.java.tests.room2
-rw-r--r--tests/org.eclipse.etrice.generator.common.tests/models/standard.etphys1
5 files changed, 226 insertions, 1 deletions
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/StaticConfigTest_Java.room b/tests/org.eclipse.etrice.generator.common.tests/models/StaticConfigTest_Java.room
index 489a1a209..5c396a422 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/StaticConfigTest_Java.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/StaticConfigTest_Java.room
@@ -50,7 +50,7 @@ RoomModel StaticConfigTest {
State s1 {
entry {
"data_3.varCheck3(caseId);"
- "SubSystemClassBase subSystem = (SubSystemClassBase) ((ActorClassBase)getParent()).getParent();"
+ "SubSystemClassBase subSystem = (SubSystemClassBase) RTServices.getInstance().getSubSystem();"
"Testee_Super2_ac testee_super2 = (Testee_Super2_ac) subSystem.getInstance(\"/System_StaticConfigTest/subSystem/top/tester/testee_super2\");"
"int caseId_2 = testee_super2.getCaseId();"
"testee_super2.getReg_port().varCheck(caseId_2);"
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/StoreRestore.room b/tests/org.eclipse.etrice.generator.common.tests/models/StoreRestore.room
new file mode 100644
index 000000000..c67843e64
--- /dev/null
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/StoreRestore.room
@@ -0,0 +1,219 @@
+RoomModel StoreRestore {
+
+ SubSystemClass SubSystem_StoreRestore {
+ ActorRef top: StoreRestore_Top
+ LogicalThread defaultThread
+ }
+
+ ActorClass StoreRestore_Top {
+ Structure {
+ ActorRef tester: Tester
+ ActorRef testee: Testee
+ Binding tester.prt and testee.prt
+ }
+ Behavior { }
+ }
+
+ ActorClass Testee {
+ Interface {
+ Port prt: PC
+ }
+ Structure {
+ usercode1 { "import StoreRestore.ObjectHolder;" }
+
+ external Port prt
+
+ Attribute ival: int16
+ Attribute iarr [ 3 ]: int32
+ Attribute sdval: SomeData
+ Attribute sdarr [ 5 ]: SomeData
+ Attribute cdval: ComplexData
+ }
+ Behavior {
+ Operation doStore() {
+ "System.out.println(\"doStore()\");"
+ "IActorClassDataObject dataObject = newDataObject();"
+ "store(dataObject);"
+ "ObjectHolder.setObject(dataObject);"
+ }
+ Operation doRestore() {
+ "System.out.println(\"doRestore()\");"
+ "IActorClassDataObject dataObject = ObjectHolder.getObject();"
+ "restore(dataObject);"
+ }
+ StateMachine {
+ Transition tr0: my tp0 -> Restore {
+ triggers {
+ <restore: prt>
+ }
+ }
+ Transition init: initial -> Begin { }
+ Transition tr1: Begin -> Store {
+ triggers {
+ <step: prt>
+ }
+ }
+ Transition tr2: Store -> state2 {
+ triggers {
+ <step: prt>
+ }
+ }
+ Transition tr3: state2 -> state3 {
+ triggers {
+ <step: prt>
+ }
+ }
+ TransitionPoint tp0
+ State Begin {
+ entry {
+ "ival = 3;"
+ }
+ }
+ State Store {
+ entry {
+ "System.out.println(\"<|MODEL_LOCATION|>\");"
+ "setFinalAction(new SingleFinalAction() {"
+ "\tpublic void run() {"
+ "\t\tdoStore();"
+ "\t}"
+ "});"
+ }
+ }
+ State state2 {
+ entry {
+ "prt.valueIs(ival);"
+ ""
+ "ival = 123;"
+ }
+ }
+ State Restore {
+ entry {
+ "System.out.println(\"<|MODEL_LOCATION|>\");"
+ "setFinalAction(new SingleFinalAction() {"
+ "\tpublic void run() {"
+ "\t\tdoRestore();"
+ "\t}"
+ "});"
+ }
+ }
+ State state3 {
+ entry {
+ "ival = 456;"
+ ""
+ "prt.answer();"
+ }
+ }
+ }
+ }
+ }
+
+ ActorClass Tester {
+ Interface {
+ conjugated Port prt: PC
+ }
+ Structure {
+ external Port prt
+
+ Attribute caseId: int32
+ Attribute counter: int32 = "0"
+ }
+ Behavior {
+ Operation Tester() {
+ "caseId = etUnit_openAll(\"tmp\", \"StoreRestore\", \"org.eclipse.etrice.generator.common.tests.StoreRestore\", \"StoreRestore_case\");"
+ }
+ Operation ~Tester() {
+ "etUnit_closeAll(caseId);"
+ }
+
+ StateMachine {
+ Transition init: initial -> Prepare { }
+ Transition tr1: Loop2 -> cp cp0 {
+ triggers {
+ <answer: prt>
+ }
+ }
+ Transition tr2: cp cp0 -> Done
+ Transition tr3: cp cp0 -> Loop {
+ cond {
+ "++counter<10"
+ }
+ }
+ Transition tr0: Prepare -> Prepare2 {
+ triggers {
+ <valueIs: prt>
+ }
+ action {
+ "EXPECT_EQUAL_INT16(caseId, \"check old value <|MODEL_LOCATION|>\", (short)3, val);"
+ }
+ }
+ Transition tr4: Prepare2 -> Loop {
+ triggers {
+ <answer: prt>
+ }
+ }
+ Transition tr5: Loop -> Loop2 {
+ triggers {
+ <valueIs: prt>
+ }
+ action {
+ "EXPECT_EQUAL_INT16(caseId, \"check old value <|MODEL_LOCATION|>\", (short)3, val);"
+ }
+ }
+ ChoicePoint cp0
+ State Prepare {
+ entry {
+ "prt.step();"
+ "prt.step();"
+ }
+ }
+ State Loop {
+ entry {
+ "prt.restore();"
+ ""
+ "prt.step();"
+ "prt.step();"
+ }
+ }
+ State Done {
+ entry {
+ "etUnit_testFinished(caseId);"
+ }
+ }
+ State Prepare2 {
+ entry {
+ "prt.step();"
+ }
+ }
+ State Loop2 {
+ entry {
+ "prt.step();"
+ }
+ }
+ }
+ }
+ }
+
+ ProtocolClass PC {
+ incoming {
+ Message step()
+ Message restore()
+ }
+ outgoing {
+ Message answer()
+ Message valueIs(val: int16)
+ }
+ }
+
+ DataClass SomeData {
+ Attribute ival: int16
+ Attribute iarr [ 3 ]: int32
+ }
+
+ DataClass ComplexData {
+ Attribute sdval: SomeData
+ Attribute sdarr [ 5 ]: SomeData
+ }
+
+ PrimitiveType int16: ptInteger -> short(Short) default "0"
+ PrimitiveType int32: ptInteger -> int(Integer) default "0"
+} \ No newline at end of file
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/generator.java.tests.etmap b/tests/org.eclipse.etrice.generator.common.tests/models/generator.java.tests.etmap
index f4251adae..a2f816eca 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/generator.java.tests.etmap
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/generator.java.tests.etmap
@@ -64,5 +64,8 @@ MappingModel JavaGenTest {
SubSystemMapping enTest -> node18 {
ThreadMapping defaultThread -> DfltThread
}
+ SubSystemMapping stTest -> node19 {
+ ThreadMapping defaultThread -> DfltThread
+ }
}
} \ No newline at end of file
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/generator.java.tests.room b/tests/org.eclipse.etrice.generator.common.tests/models/generator.java.tests.room
index c0dc2d191..9ee97a6a2 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/generator.java.tests.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/generator.java.tests.room
@@ -3,6 +3,7 @@ RoomModel JavaGenTests {
import HandlerTest.* from "HandlerTest.room"
import ChoicePointTest.* from "ChoicePointTest.room"
import EnumTest.* from "EnumTest.room"
+ import StoreRestore.* from "StoreRestore.room"
import ChoicePointTestExtended.* from "ChoicePointTestExtended.room"
import PingPongThreadTest.* from "PingPongThreadTest.room"
import PingPongThreadTestReplPort.* from "PingPongThreadReplPortTest.room"
@@ -23,6 +24,7 @@ RoomModel JavaGenTests {
SubSystemRef hdTest: SubSystem_HandlerTest
SubSystemRef cpTest: SubSystem_CPTest
SubSystemRef enTest: SubSystem_EnumTest
+ SubSystemRef stTest: SubSystem_StoreRestore
SubSystemRef cpExtTest : SubSystem_CPTestExtended
SubSystemRef ppTest: SubSystem_PingPong
SubSystemRef prTest: SubSystem_PingPongReplPort
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/standard.etphys b/tests/org.eclipse.etrice.generator.common.tests/models/standard.etphys
index 640f5c120..f31b064b8 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/standard.etphys
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/standard.etphys
@@ -19,6 +19,7 @@ PhysicalModel Standard {
NodeRef node16: PC
NodeRef node17: PC
NodeRef node18: PC
+ NodeRef node19: PC
}
NodeClass PC {

Back to the top