|
1 <!-- Build file for the com.symbian.smt.gui.test plug-in PDE unit test fragment --> |
|
2 <project name="com.symbian.smt.gui.test" default="help" basedir="."> |
|
3 <property name="plugin.dir" location="${basedir}"/> |
|
4 <property name="projects.dir" location="${basedir}/.."/> |
|
5 <property file="${projects.dir}/project.properties"/> |
|
6 |
|
7 <property name="plugin.name" value="com.symbian.smt.gui.test"/> |
|
8 <property name="plugin.version" value="1.0.0"/> |
|
9 <property name="plugin.under.test.version" value="1.1.1"/> |
|
10 <property name="properties.plugin.under.test.version" value="1.1.1"/> |
|
11 <property name="test.eclipse.dir" location="c:/opt/eclipse-for-pde-unit-tests"/> |
|
12 <property name="target.dir" location="${projects.dir}/target"/> |
|
13 <property name="published.plugins.dir" location="${target.dir}/plugins"/> |
|
14 <property name="src.dir" location="${plugin.dir}/src"/> |
|
15 <property name="test.dir" location="${plugin.dir}/src"/> |
|
16 <property name="plugin.target.dir" location="${plugin.dir}/target"/> |
|
17 <property name="reports.dir" location="${plugin.target.dir}/reports"/> |
|
18 <property name="classes.dir" location="${plugin.target.dir}/classes"/> |
|
19 <property name="test.reports.dir" location="${reports.dir}/test"/> |
|
20 <property name="pde.test.utils.version" value="1.0.0"/> |
|
21 |
|
22 <path id="build.class.path"> |
|
23 <pathelement location="${published.plugins.dir}/com.symbian.smt.gui_${plugin.under.test.version}.jar"/> |
|
24 <fileset dir="${test.eclipse.dir}/plugins"> |
|
25 <include name="org.eclipse.core.runtime_*.jar"/> |
|
26 <include name="org.eclipse.equinox.common_*.jar"/> |
|
27 <include name="org.eclipse.ui.workbench_*.jar"/> |
|
28 <include name="org.eclipse.jface_*.jar"/> |
|
29 <include name="org.eclipse.swt_*.jar"/> |
|
30 <include name="org.eclipse.swt.win32.win32.x86_*.jar"/> |
|
31 <include name="org.junit_3*/**/junit.jar"/> |
|
32 <include name="org.eclipse.equinox.preferences_3.2*.jar"/> |
|
33 <include name="org.eclipse.core.resources_3.4*.jar"/> |
|
34 <include name="org.eclipse.ui.ide_3.4*.jar"/> |
|
35 <include name="org.eclipse.core.jobs_3.4*.jar"/> |
|
36 </fileset> |
|
37 </path> |
|
38 |
|
39 <path id="pde.test.listener.class.path"> |
|
40 <path refid="build.class.path"/> |
|
41 <pathelement location="${published.plugins.dir}/com.symbian.pde.test.utils_${pde.test.utils.version}.jar"/> |
|
42 <fileset dir="${test.eclipse.dir}/plugins"> |
|
43 <include name="org.apache.ant_*/**/ant.jar"/> |
|
44 <include name="org.apache.ant_*/**/ant-junit.jar"/> |
|
45 <include name="org.eclipse.jdt.junit_*.jar"/> |
|
46 <include name="org.eclipse.debug.core_*.jar"/> |
|
47 <include name="org.eclipse.osgi_*.jar"/> |
|
48 <include name="org.eclipse.core.resources_*.jar"/> |
|
49 <include name="org.eclipse.swt_*.jar"/> |
|
50 </fileset> |
|
51 </path> |
|
52 |
|
53 <path id="pde.test.port.locator.class.path"> |
|
54 <pathelement location="${published.plugins.dir}/com.symbian.pde.test.utils_${pde.test.utils.version}.jar"/> |
|
55 <fileset dir="${test.eclipse.dir}/plugins"> |
|
56 <include name="org.junit_3*/**/junit.jar"/> |
|
57 </fileset> |
|
58 </path> |
|
59 |
|
60 <path id="equinox.launcher.class.path"> |
|
61 <fileset dir="${test.eclipse.dir}/plugins"> |
|
62 <include name="org.eclipse.equinox.launcher_*.jar"/> |
|
63 </fileset> |
|
64 </path> |
|
65 |
|
66 <target name="build"> |
|
67 <mkdir dir="${classes.dir}"/> |
|
68 <javac srcdir="${test.dir}" destdir="${classes.dir}" debug="${debug}" deprecation="${deprecation}" classpathref="build.class.path" includeantruntime="false"/> |
|
69 <antcall target="create_eclipse_plugin"/> |
|
70 <copy todir="${published.plugins.dir}" file="${plugin.target.dir}/${plugin.name}_${plugin.version}.jar" overwrite="true"/> |
|
71 </target> |
|
72 |
|
73 <target name="create_eclipse_plugin"> |
|
74 <property file="${plugin.dir}/build.properties"/> <!-- Load bin.includes property from plugin's eclipse build.properties file --> |
|
75 <delete file="${plugin.target.dir}/${plugin.name}_${plugin.version}.jar"/> |
|
76 <zip destfile="${plugin.target.dir}/${plugin.name}_${plugin.version}.jar"> |
|
77 <zipfileset dir="." includes="${bin.includes}"/> |
|
78 <zipfileset dir="${classes.dir}"/> |
|
79 </zip> |
|
80 </target> |
|
81 |
|
82 <target name="test" depends="build, pde_test, generate_report, check_results"/> |
|
83 |
|
84 <target name="pde_test"> |
|
85 <delete> |
|
86 <fileset dir="${test.eclipse.dir}/plugins" includes="com.symbian.smt.gui*.jar"/> |
|
87 <fileset dir="${test.eclipse.dir}/plugins" includes="com.symbian.pde.test.utils*.jar"/> |
|
88 </delete> |
|
89 |
|
90 <!-- Load plugin and pde tests plugin fragment into test eclipse installation --> |
|
91 <copy todir="${test.eclipse.dir}/plugins" overwrite="true"> |
|
92 <fileset dir="${published.plugins.dir}"/> |
|
93 </copy> |
|
94 |
|
95 <delete file="pde_test_port.properties"/> <!-- properties file generated by PDETestPortLocator class in com.symbian.pde.test.utils --> |
|
96 <java classname="com.symbian.pde.test.utils.PDETestPortLocator" fork="yes" classpathref="pde.test.port.locator.class.path"/> |
|
97 <waitfor maxwait="10" maxwaitunit="second" checkevery="100" checkeveryunit="millisecond"> |
|
98 <available file="pde_test_port.properties"/> |
|
99 </waitfor> |
|
100 <property file="pde_test_port.properties"/> |
|
101 <echo message="Using port ${pde.test.port} for listening to PDE Test run"/> |
|
102 |
|
103 <parallel> |
|
104 <daemons> |
|
105 <antcall target="run_pde_test_listener"/> |
|
106 </daemons> |
|
107 <sequential> |
|
108 <sleep seconds="5"/> <!-- Give the listener a few seconds to start up --> |
|
109 <antcall target="run_pde_tests"/> |
|
110 </sequential> |
|
111 </parallel> |
|
112 |
|
113 <delete> |
|
114 <fileset dir="${test.eclipse.dir}/plugins" includes="com.symbian.smt.gui*.jar"/> |
|
115 <fileset dir="${test.eclipse.dir}/plugins" includes="com.symbian.pde.test.utils*.jar"/> |
|
116 </delete> |
|
117 |
|
118 <mkdir dir="${test.reports.dir}"/> |
|
119 <move todir="${test.reports.dir}"> |
|
120 <fileset dir="."> |
|
121 <include name="**/TEST-*.xml"/> |
|
122 </fileset> |
|
123 </move> |
|
124 </target> |
|
125 |
|
126 <target name="run_pde_test_listener"> |
|
127 <java classname="com.symbian.pde.test.utils.PDETestResultsCollector" fork="yes" classpathref="pde.test.listener.class.path"> |
|
128 <arg line="${plugin.name} ${pde.test.port}"/> |
|
129 </java> |
|
130 </target> |
|
131 |
|
132 <target name="run_pde_tests"> |
|
133 <property name="test.classes.list" value="com.symbian.smt.gui.smtwidgets.ModelControlWidgetTest"/> |
|
134 <property name="test.classes.list" value="com.symbian.smt.gui.wizard.NewSMTProjectWizardTest"/> |
|
135 <property name="test.classes.list" value="com.symbian.smt.gui.wizard.NewProjectWizardTabbedPropertiesTest"/> |
|
136 <property name="test.classes.list" value="com.symbian.smt.gui.smtwidgets.resources.ResourceFileSelectionValidatorTest"/> |
|
137 <mkdir dir="${test.reports.dir}/output/ws"/> |
|
138 <java dir="${plugin.dir}" classname="org.eclipse.equinox.launcher.Main" fork="yes" classpathref="equinox.launcher.class.path"> |
|
139 <arg line="-application org.eclipse.pde.junit.runtime.uitestapplication -data ${test.reports.dir}/output/ws -dev bin -clean -port ${pde.test.port} -testpluginname com.symbian.smt.gui -classnames ${test.classes.list}"/> |
|
140 </java> |
|
141 </target> |
|
142 |
|
143 <target name="generate_report"> |
|
144 <junitreport todir="${test.reports.dir}"> |
|
145 <fileset dir="${test.reports.dir}"> |
|
146 <include name="TEST-*.xml" /> |
|
147 </fileset> |
|
148 <report todir="${test.reports.dir}" /> |
|
149 </junitreport> |
|
150 </target> |
|
151 |
|
152 <target name="check_results"> |
|
153 <loadfile srcfile="${test.reports.dir}/overview-summary.html" property="full.results.summary"/> <!-- works if you load 2 times ?? --> |
|
154 <loadfile srcfile="${test.reports.dir}/overview-summary.html" property="results.summary"> |
|
155 <filterchain> |
|
156 <headfilter lines="30" /> |
|
157 <linecontains> |
|
158 <contains value="%</td>" /> |
|
159 </linecontains> |
|
160 </filterchain> |
|
161 </loadfile> |
|
162 |
|
163 <condition property="tests.passed"> |
|
164 <contains string="${results.summary}" substring="100.00%" /> |
|
165 </condition> |
|
166 <fail message="FAILED - some tests failed - see ${test.reports.dir}/index.html for more details" unless="tests.passed" /> |
|
167 <echo message="SUCCESS - all tests passed - see ${test.reports.dir}/index.html for more details" /> |
|
168 </target> |
|
169 |
|
170 <target name="clean"> |
|
171 <delete file="pde_test_port.properties"/> |
|
172 <delete dir="${plugin.dir}/bin"/> |
|
173 <delete dir="${plugin.target.dir}"/> |
|
174 </target> |
|
175 |
|
176 <target name="help"> |
|
177 <echo> |
|
178 This is the ant build file for the com.symbian.smt.gui.test PDE Tests. |
|
179 |
|
180 Usage: |
|
181 |
|
182 Target Description |
|
183 ============== ============================================== |
|
184 [default] Displays this message. |
|
185 |
|
186 build Builds the source and creates the plugin jar. |
|
187 |
|
188 clean Cleans all the build and generated artefacts. |
|
189 |
|
190 test Builds and runs the PDE JUnit tests and generates a report. |
|
191 </echo> |
|
192 </target> |
|
193 |
|
194 </project> |