Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 69e2ae560e7f7643c28b3364aeeb6c99560f4702 (plain) (blame)
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
}

Back to the top