-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.xml
150 lines (130 loc) · 5.55 KB
/
build.xml
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<?xml version="1.0"?>
<project name="asmeta_to_cpp_travisci" default="test" basedir="." xmlns:jacoco="antlib:org.jacoco.ant">
<tstamp>
<format property="TODAY" pattern="yy-MM-dd HH-mm-ss" />
</tstamp>
<property name="src.dir" location="./src" />
<property name="test.dir" location="./test" />
<property name="jar.dir" location="./asmetaJar" />
<property name="build.dir" location="./build" />
<property name="build.classes.dir" location="${build.dir}/classes" />
<property name="build.test.dir" location="${build.dir}/tests" />
<property name="build.classes.instr.dir" location="${build.dir}/classes-instr" />
<property name="build.test.instr.dir" location="${build.dir}/tests-instr" />
<property name="output.dir" location="./output/coverage${TODAY}" />
<property name="output.report.dir" location="${output.dir}/report" />
<property name="output.jacoco.dir" location="${output.dir}/jacoco" />
<property name="output.exec.fileSrc" location="${output.jacoco.dir}/jacocosrc.exec" />
<property name="output.exec.fileTest" location="${output.jacoco.dir}/jacocotest.exec" />
<property name="output.exec.mergedfile" location="${output.jacoco.dir}/merged.exec" />
<property name="asmExample" location="./asm_examples" />
<property name="temp" location="./temp" />
<path id="classpath.base" />
<path id="classpath.test">
<pathelement location="asmetaJar/asmeta.parser_1.0.0.jar" />
<pathelement location="asmetaJar/asmeta.emf_1.0.0.jar" />
<pathelement location="asmetaJar/asmeta.cpp_codegen.jar" />
<pathelement location="lib/org.eclipse.emf.common.jar" />
<pathelement location="lib/org.eclipse.emf.ecore.jar" />
<pathelement location="lib/asmeta.simulator_1.0.0.jar" />
<pathelement location="lib/asmeta.boost_unit.jar" />
<pathelement location="lib/atgt.jar" />
<pathelement location="lib/nusmv_generator.jar" />
<pathelement location="lib/junit-4.11.jar" />
<pathelement location="lib/hamcrest-core-1.3.jar" />
<pathelement location="lib/log4j.jar" />
<pathelement location="lib/org.eclipse.xtext_2.13.0.v20171020-0708.jar" />
<pathelement location="lib/org.eclipse.xtext.xbase.lib_2.13.0.v20171020-0659.jar" />
<pathelement location="lib/com.google.guava_21.0.0.v20170206-1425.jar" />
<pathelement location="${build.classes.dir}" />
<path refid="classpath.base" />
</path>
<!-- Import JaCoCo Ant tasks -->
<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
<classpath path="lib/jacocoant.jar" />
</taskdef>
<target name="init">
<mkdir dir="${build.classes.dir}" />
<mkdir dir="${build.test.dir}" />
<mkdir dir="${output.report.dir}" />
<mkdir dir="${output.jacoco.dir}" />
<mkdir dir="${temp}" />
</target>
<target name="compileTest" depends="init">
<javac srcdir="${test.dir}" destdir="${build.test.dir}" includeantruntime="false" debug="on">
<classpath refid="classpath.test" />
</javac>
</target>
<target name="instrumentTest" depends="compileTest">
<jacoco:instrument destdir="${build.test.instr.dir}">
<fileset dir="${build.test.dir}" />
</jacoco:instrument>
<echo>instrumentation test complete!</echo>
</target>
<target name="execTest" depends="instrumentTest">
<!-- Step 2: Wrap test execution with the JaCoCo coverage task -->
<jacoco:coverage destFile="${output.exec.fileTest} ">
<junit fork="true" forkmode="once">
<classpath>
<pathelement location="${build.test.dir}" />
</classpath>
<classpath refid="classpath.test" />
<!-- <test name="asmeta_to_cpp_travisci.ParserTest" />
<test name="asmeta_to_cpp_travisci.ToCppTranslatorTest" /> -->
<test name="asmeta_to_cpp_travisci.BoostUnitCoverageTestParam" />
<!--todir="${output.dir}"-->
<!-- Print error message to screen-->
<formatter type="plain" usefile="false" />
</junit>
</jacoco:coverage>
<echo>test coverage complete!</echo>
</target>
<target name="report" depends="execTest">
<jacoco:report>
<executiondata>
<file file="${output.exec.fileTest}" />
</executiondata>
<structure name="asmeta_tp_cpp_travisci">
<classfiles>
<fileset dir="${build.test.dir}" />
<!-- Aggiunge la copertura dei jar nella directory jar.dir al report -->
<fileset dir="${jar.dir}">
<include name="*.jar" />
</fileset>
<fileset dir="${asmExample}">
<include name="*.cpp" />
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${test.dir}" />
</sourcefiles>
</structure>
<html destdir="${output.report.dir}" />
</jacoco:report>
<echo>report complete!</echo>
</target>
<!-- delete all class files -->
<target name="clean" depends="report">
<delete dir="${build.dir}" />
<!-- Se voglio resettare il report ogni volta aggiungere questa riga, togliere depends="report"
e aggiungere depends="report" nel target "start"
<delete dir="${output.dir}" />
-->
<!--<delete dir="${temp}" />-->
<delete>
<fileset dir="${temp}" includes="**/*.gcda" />
<fileset dir="${temp}" includes="**/*.gcov" />
<fileset dir="${temp}" includes="**/*.gcno" />
<fileset dir="${temp}" includes="**/*.o" />
<fileset dir="${temp}" includes="**/*.exe" />
</delete>
<delete>
<fileset dir="${asmExample}" includes="**/*.cpp" />
<fileset dir="${asmExample}" includes="**/*.h" />
<fileset dir="${asmExample}" includes="**/*.o" />
</delete>
<echo message="clean done" />
</target>
<!-- start all the tests activities -->
<target name="test" depends="clean" />
</project>