1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
apply plugin: 'c'
apply plugin: 'cpp'
apply plugin: 'java-base'
apply from: "$rootDir/gradle/etTest.gradle"
dependencies {
modelpath_c project(path: ':runtime:org.eclipse.etrice.modellib.c', configuration: 'modelpath_c')
modelpath_cpp project(path: ':runtime:org.eclipse.etrice.modellib.cpp', configuration: 'modelpath_cpp')
modelpath_java project(path: ':runtime:org.eclipse.etrice.modellib.java', configuration: 'modelpath_java')
modelpath_c files('models')
modelpath_cpp files('models')
modelpath_java files('models')
modelpath_c files('model-gen')
modelpath_cpp files('model-gen')
modelpath_java files('model-gen')
}
def genericPhysical = 'models/GenericPhysical.etphys'
def tests = [
actorCommunicationTest: ['models/ActorCommunicationTest.room', genericPhysical],
choicePointTest: ['models/ChoicePointTest.room', genericPhysical],
choicePointTestExtended: ['models/ChoicePointTestExtended.room', genericPhysical],
dataDrivenTest: ['models/DataDrivenTest.room', genericPhysical],
/* enumTest: ['models/EnumTest.room', genericPhysical], not supported in c++ */
compileTest: ['models/CompileTest.room', genericPhysical, 'models/StatemachineInterfaceTest.room', 'models/StatemachineInterfaceInheritedTest.room', 'models/StatemachineInterfaceTest.room', 'models/ContinuationTransitionTest.room', 'models/Bug541775_NoInitialTransition.room'],
handlerTest: ['models/HandlerTest.room', genericPhysical],
operationInheritanceTest: ['models/OperationInheritanceTest.room', genericPhysical],
pingPongThreadTest: ['models/PingPongThreadTest.etmap', 'models/PingPongThreadTest.room'],
pingPongThreadReplPortTest: ['models/PingPongThreadReplPortTest.etmap', 'models/PingPongThreadReplPortTest.room'],
]
tests.each { name, models ->
createTest('c', name, models)
createTest('cpp', name, models)
createTest('java', name, models)
}
// Enum Test
createTest('c', 'enumTest', ['models/EnumTest.room', genericPhysical])
createTest('java', 'enumTest', ['models/EnumTest.room', genericPhysical])
// DetailExpressionCompile Test
createTest('c', 'detailExpressionCompileTest', [genericPhysical, 'models/DetailExpressionTest.room', 'models/DetailExpressionEnum.room', 'models/DetailExpressionTypes.room'])
createTest('java', 'detailExpressionCompileTest', [genericPhysical, 'models/DetailExpressionTest.room', 'models/DetailExpressionEnum.room', 'models/DetailExpressionTypes.room'])
// VarargsTest
createTest('c', 'varargsTest', [genericPhysical, 'models/VarargsTest.room'])
createTest('java', 'varargsTest', [genericPhysical, 'models/VarargsTest.room'])
// SubSystemUserCodeTest
createTest('c', 'subSystemUserCodeTest', ['models/SubSystemUserCodeTest.room', genericPhysical])
// Contract Monitor Generation
createTest('c', 'contractMonitorTest', ['models/ContractMonitorTest.room', 'models/ContractMonitor.room', 'model-gen/ContractMonitor_monitors.room', genericPhysical])
createTest('java', 'contractMonitorTest', ['models/ContractMonitorTest.room', 'models/ContractMonitor.room', 'model-gen/ContractMonitor_monitors.room', genericPhysical])
[generateContractMonitorTestC, generateContractMonitorTestJava].forEach{ genTask ->
def monitorGen = genTask.name + 'Monitor'
tasks.register(monitorGen, JavaExec) {
main = 'org.eclipse.etrice.generator.contractmonitor.Main'
classpath = genTask.classpath
args '-modelpath', genTask.modelpath.asPath
args '-targetLang', genTask.lang
args '-genDir', file('model-gen')
args file('models/ContractMonitor.room')
}
genTask.dependsOn monitorGen
}
|