sysmodelmgr/com.symbian.smt.gui.test/build.xml
changeset 0 522a326673b6
equal deleted inserted replaced
-1:000000000000 0:522a326673b6
       
     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="%&lt;/td&gt;" />
       
   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>