blob: 5c4e8c8fac13ec3b11b9783d8208461483516784 [file] [log] [blame]
RoomModel InitializationTest {
import room.basic.types.* from "Types.room"
import room.basic.etunit.* from "Tests.room"
async ActorClass InitializationTest {
@TestInstance
Structure {
usercode1 {
"struct structType {"
" int32 number;"
" structType* refStruct;"
"} typedef structType;"
""
"class ClassType {"
"public:"
" ClassType(bool boolAttr, int32 number) : boolAttr(boolAttr), number(number) {}"
""
" bool boolAttr;"
" int32 number;"
"};"
}
Attribute caseId : int16
// c/c++ struct
Attribute structAttr1: structType
Attribute structAttr2: structType = "{2, NULL}"
Attribute arrayStructAttr[2]: structType = "{{1, NULL}, {2, NULL}}"
// static array
Attribute arrayInt32Attr1[5]: int32
Attribute arrayInt32Attr2[5]: int32 = ""
Attribute arrayInt32Attr3[5]: int32 = "1"
Attribute arrayInt32Attr4[5]: int32 = "{1, 2, 3, 4, 5}"
// data class
Attribute dataClassAttr1 : SubDataClass
Attribute dataClassAttr2 : SubDataClass = "true, 2"
// Attribute arrayDataClassAttr[2]: SubDataClass // = "..." init NOT possible
// external class
Attribute extClassAttr1 : ClassType
Attribute extClassAttr2 : ClassType = "true, 2"
// Attribute arrayExtClassAttr[2] : ClassType // = "..." init NOT possible
}
Behavior {
ctor {
"caseId = etUnit_openAll(\"log/testlog\", \"InitializationTest\", \"org.eclipse.etrice.generator.cpp.tests.InitializationTest\", \"InitializationTest_case\");"
"testInitValues(caseId);"
}
dtor {
"etUnit_closeAll(caseId);"
}
Operation testInitValues(caseId : int16) {
"// c/c++ struct"
"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 1, structAttr1.number);"
"EXPECT_TRUE(caseId, \"<|MODEL_LOCATION|>\", structAttr1.refStruct == NULL);"
"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 2, structAttr2.number);"
"EXPECT_TRUE(caseId, \"<|MODEL_LOCATION|>\", structAttr2.refStruct == NULL);"
"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 1, arrayStructAttr[0].number);"
"EXPECT_TRUE(caseId, \"<|MODEL_LOCATION|>\", arrayStructAttr[0].refStruct == NULL);"
"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 2, arrayStructAttr[1].number);"
"EXPECT_TRUE(caseId, \"<|MODEL_LOCATION|>\", arrayStructAttr[1].refStruct == NULL);"
"// static array"
"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 0, arrayInt32Attr1[0]);"
"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 1, arrayInt32Attr3[0]);"
"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 1, arrayInt32Attr4[0]);"
"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 5, arrayInt32Attr4[4]);"
"// data class"
"EXPECT_FALSE(caseId, \"<|MODEL_LOCATION|>\", dataClassAttr1.boolAttr);"
"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 0, dataClassAttr1.number);"
"EXPECT_TRUE(caseId, \"<|MODEL_LOCATION|>\", dataClassAttr2.boolAttr);"
"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 2, dataClassAttr2.number);"
"// external class"
"EXPECT_FALSE(caseId, \"<|MODEL_LOCATION|>\", extClassAttr1.boolAttr);"
"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 0, extClassAttr1.number);"
"EXPECT_TRUE(caseId, \"<|MODEL_LOCATION|>\", extClassAttr2.boolAttr);"
"EXPECT_EQUAL_INT32(caseId, \"<|MODEL_LOCATION|>\", 2, extClassAttr2.number);"
}
StateMachine {
State finish {
entry {
"etUnit_testFinished(caseId);"
}
}
Transition init: initial -> finish
}
}
}
DataClass BaseDataClass {
Attribute boolAttr : boolean
}
DataClass SubDataClass extends BaseDataClass {
Attribute number : int32
}
ExternalType ClassType -> "ClassType" default "false, 0"
ExternalType structType -> "structType" default "{1, NULL}"
}