diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/org.eclipse.etrice.generator.common.tests/build.gradle | 3 | ||||
-rw-r--r-- | tests/org.eclipse.etrice.generator.common.tests/models/SubSystemUserCodeTest.room | 32 |
2 files changed, 35 insertions, 0 deletions
diff --git a/tests/org.eclipse.etrice.generator.common.tests/build.gradle b/tests/org.eclipse.etrice.generator.common.tests/build.gradle index 42d4d908d..5046158f5 100644 --- a/tests/org.eclipse.etrice.generator.common.tests/build.gradle +++ b/tests/org.eclipse.etrice.generator.common.tests/build.gradle @@ -37,3 +37,6 @@ createTest('java', 'detailExpressionCompileTest', [genericPhysical, 'models/Deta // VarargsTTest createTest('c', 'varargsTest', [genericPhysical, 'models/VarargsTest.room']) createTest('java', 'varargsTest', [genericPhysical, 'models/VarargsTest.room']) + +// SubSystemUserCodeTest +createTest('c', 'subSystemUserCodeTest', ['models/SubSystemUserCodeTest.room', genericPhysical]) diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/SubSystemUserCodeTest.room b/tests/org.eclipse.etrice.generator.common.tests/models/SubSystemUserCodeTest.room new file mode 100644 index 000000000..d93962daa --- /dev/null +++ b/tests/org.eclipse.etrice.generator.common.tests/models/SubSystemUserCodeTest.room @@ -0,0 +1,32 @@ +RoomModel SubSystemUserCodeTest { + + import room.basic.annotations.* from "../../../runtime/org.eclipse.etrice.modellib.c/model/Annotations.room" + import room.basic.test.* from "../../../runtime/org.eclipse.etrice.modellib.c/model/Tests.room" + import room.basic.types.* from "../../../runtime/org.eclipse.etrice.modellib.c/model/Types.room" + + ActorClass AGeneratedUserCode { + @TestInstance + @SubSystemUserCode(userCode=" + int inSubSystemInstance(){ return 99; } + ") + Structure { + usercode3 ''' + extern int inSubSystemInstance(); + ''' + } + Behavior { + ctor ''' + etInt16 caseId = etUnit_openAll("log", "SubSystemUserCodeTest", "org.eclipse.etrice.generator.c.tests.SubSystemUserCodeTest", "SubSystemUserCodeTest_case"); + EXPECT_EQUAL_INT32(caseId, "", 99, inSubSystemInstance()); + etUnit_testFinished(caseId); + etUnit_closeAll(caseId); + ''' + + } + } + + // no instance => no sub system user code + ActorClass ANotGenerated { + @SubSystemUserCode(userCode="int inSubSystemInstance(){ return 0; }") + } +}
\ No newline at end of file |