<!--****************************************************************************
* Configuration tool test cases
* This ant build.xml will compile the system test cases and execute them.
****************************************************************************-->
<project name="ConfigurationTool system tests" default="all">
<property file="../common.properties"/>
<property file="../install.properties"/>
<property file="build.properties"/>
<property file="../test.properties"/>
<!-- set global properties for this build -->
<target name="all" depends="clean, init, resource, compile, test"/>
<target name="clean">
<delete dir="${tests.target}" quiet="true" />
</target>
<target name="clean-resource">
<delete dir="${install.dir}/testdata" quiet="true" />
</target>
<!-- create the necessary folders -->
<target name="init">
<mkdir dir="${tests.target}/test-results"/>
<mkdir dir="${tests.target}/test-classes"/>
</target>
<!-- copy the needed system testing data to the install folder -->
<target name="resource">
<!-- Copy all from testdata to testdata -->
<copy todir="${install.dir}/testdata">
<fileset dir="${tests.data}" includes="**/*"/>
</copy>
</target>
<target name="compile" depends="init"
description="compile the test source">
<!-- Compile the java code from ${src} into ${build} -->
<javac srcdir="${tests.src}" destdir="${tests.target}/test-classes">
<classpath>
<pathelement location="lib/junit.jar"/>
</classpath>
</javac>
</target>
<!-- nothing to do on jar target -->
<target name="jar"/>
<!-- Build target will commit all the build steps and can be used for incremental
building, because ant recognized changed files -->
<target name="build" depends="init, resource, compile, jar"/>
<target name="test" depends="regtest,newtest,acctest"/>
<target name="acctest" depends="init,resource,compile">
<junit haltonfailure="no" printsummary="on" timeout="500000" fork="on" dir="${install.dir}">
<classpath>
<pathelement location="${tests.target}/test-classes"/>
<pathelement location="lib/junit.jar"/>
</classpath>
<formatter type="brief" usefile="true"/>
<formatter type="xml" />
<batchtest todir="${tests.target}/test-results" >
<fileset dir="${tests.target}/test-classes">
<include name="acctest/Tc*.class"/>
</fileset>
</batchtest>
</junit>
</target>
<target name="newtest" depends="init,resource,compile">
<junit haltonfailure="no" printsummary="on" fork="on" timeout="500000" dir="${install.dir}">
<classpath>
<pathelement location="${tests.target}/test-classes"/>
<pathelement location="lib/junit.jar"/>
</classpath>
<formatter type="brief" usefile="true"/>
<formatter type="xml" />
<batchtest todir="${tests.target}/test-results" >
<fileset dir="${tests.target}/test-classes">
<include name="newtest/Tc*.class"/>
</fileset>
</batchtest>
</junit>
</target>
<target name="regtest" depends="init,resource,compile">
<junit haltonfailure="no" printsummary="on" fork="on" timeout="500000" dir="${install.dir}">
<classpath>
<pathelement location="${tests.target}/test-classes"/>
<pathelement location="lib/junit.jar"/>
</classpath>
<formatter type="brief" usefile="true"/>
<formatter type="xml" />
<batchtest todir="${tests.target}/test-results" >
<fileset dir="${tests.target}/test-classes">
<include name="regtest/Tc*.class"/>
</fileset>
</batchtest>
</junit>
</target>
<!-- ==== COVERAGE ==== -->
<path id="tests.class.path">
<path refid="project.class.path"/>
<fileset dir="../tests/lib" casesensitive="no">
<include name="*.jar"/>
</fileset>
</path>
<path id="inst.class.path">
<fileset dir="${common.plugin-lib}" casesensitive="no">
<include name="**/*.jar"/>
</fileset>
<fileset dir="${common.plugin-dist}" casesensitive="no">
<include name="**/*.jar"/>
<include name="*.jar"/>
</fileset>
</path>
<path id="test.inst.class.path">
<fileset dir="${common.plugin-lib}" casesensitive="no">
<include name="**/*.jar"/>
</fileset>
<fileset dir="${common.plugin-dist}" casesensitive="no">
<include name="**/*.jar"/>
<include name="*.jar"/>
</fileset>
<fileset dir="../tests/lib" casesensitive="no">
<include name="*.jar"/>
</fileset>
</path>
<!-- Set emma.lib to refer to the list of EMMA jar files -->
<path id="emma.lib" >
<fileset dir="lib">
<include name="*.jar"/>
</fileset>
</path>
<!-- Define which classes will be reported in the coverage reports -->
<!-- (by default, we will include all classes and assume -->
<!-- that your project's output folder is target/classes -->
<path id="emma.coverage.classes" >
<pathelement location="build/bin" />
</path>
<!-- Load <emma> and <emmajava> custom tasks so that they can be used in ANT -->
<taskdef resource="emma_ant.properties" classpathref="emma.lib"/>
<target name="_inst_compile" >
<echo message="plugin-build-template.xml ${pluginName} _inst_compile" level="debug"/>
<!--<antcall target="inst_compile"/>-->
<!--<antcall target="jar"/>-->
</target>
<target name="_test_coverage" >
<echo message="plugin-build-template.xml ${pluginName} _test_coverage" level="debug"/>
<antcall target="init_test"/>
<antcall target="test_compile"/>
<antcall target="test_coverage_execution"/>
<antcall target="test_coverage_report"/>
</target>
<target name="resource_inst" depends="init">
<echo message="plugin-build-template.xml ${pluginName} resource" level="debug"/>
<copy todir="${common.plugin-target}/inst/">
<fileset refid="plugin-resources" />
</copy>
<copy todir="${common.plugin-target}/bin/">
<fileset dir="${common.plugin-src.dir}" includes="**/*.properties"/>
<fileset dir="${common.plugin-src.dir}" includes="**/*.tokens"/>
<fileset dir="${common.plugin-src.dir}" includes="**/*.g"/>
<fileset dir="${common.plugin-src.dir}" includes="**/*.txtjet"/>
</copy>
</target>
<target name="compile_inst" depends="emma, resource, resource_inst" description="compile the source with instrumentation">
<echo message="plugin-build-template.xml ${pluginName} compile_inst" level="debug"/>
<!-- Update manifest file with value from -Dversion=string -->
<manifest file="${common.plugin-target}/bin/META-INF/MANIFEST.MF" mode="update">
<attribute name="Bundle-ReleaseVersion" value="${common.releaseversion}"/>
<attribute name="Bundle-Date" value="${common.builddate}"/>
<attribute name="Bundle-RepositoryVersion" value="${common.svnversion}"/>
</manifest>
<!-- Compile the java code from ${src} into ${build} -->
<javac executable="${common.javac-exe}"
debug="on"
verbose="${common.javac-verbose}"
fork="${common.javac-fork}"
compiler="${common.javac-compiler}"
srcdir="${common.plugin-src.dir}"
destdir="${common.plugin-target}/bin"
target="${common.javac-target}"
source="${common.javac-source}">
<classpath refid="inst.class.path"/>
</javac>
<emma enabled="true">
<instr instrpathref="emma.coverage.classes"
destdir="${common.instr.dir}"
metadatafile="${common.unittest.reports.emma.dir}/${pluginName}-metadata.emma"
merge="true">
<filter value="${emma.filter}" />
</instr>
</emma>
<copy todir="${common.plugin-target}/bin">
<fileset dir="${common.instr.dir}" >
<include name="**/*.class" />
</fileset>
</copy>
</target>
<target name="test_coverage_execution" >
<echo message="plugin-build-template.xml ${pluginName} test_coverage_execution" level="debug"/>
<junit printsummary="yes" haltonfailure="no" fork="true">
<classpath>
<pathelement location="${common.unittest.bin.dir}"/>
<pathelement location="${common.instr.dir}"/>
<path refid="test.inst.class.path"/>
<path refid="emma.lib" />
</classpath>
<formatter type="xml"/>
<batchtest todir="${common.unittest.reports.dir}">
<fileset dir="${common.unittest.bin.dir}">
<include name="**/*Test*.class"/>
<exclude name="**/AllTests.class"/>
</fileset>
</batchtest>
<jvmarg value="-Demma.coverage.out.file=${pluginName}/${common.unittest.reports.emma.dir}/${pluginName}-coverage.emma" />
<jvmarg value="-Demma.coverage.out.merge=true" />
</junit>
</target>
<target name="emma" description="turns on EMMA's instrumentation/reporting" >
<echo message="plugin-build-template.xml ${pluginName} emma" level="debug"/>
<property name="emma.enabled" value="true" />
<mkdir dir="${common.instr.dir}" />
<property name="emma.filter" value="" />
</target>
<target name="test_coverage_report">
<echo message="plugin-build-template.xml ${pluginName} test_coverage_report" level="debug"/>
<junitreport todir="${common.unittest.reports.dir}">
<fileset dir="${common.unittest.reports.dir}">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="${common.unittest.reports.dir}/html"/>
</junitreport>
<copy todir="../tests/emma/src">
<fileset dir="src">
<include name="**/*.java"/>
</fileset>
</copy>
<copy todir="../tests/target/test-results/">
<fileset dir="${common.unittest.reports.dir}">
<include name="TEST-*.xml"/>
</fileset>
</copy>
<copy todir="../tests/target/emma">
<fileset dir="${common.unittest.reports.emma.dir}">
<include name="*.emma"/>
</fileset>
</copy>
<!-- if enabled, generate coverage report(s): -->
<!--<emma enabled="true">
<report sourcepath="${common.plugin-src.dir}" sort="+block,+name,+method,+class" metrics="method:70,block:80,line:80,class:100">
<fileset dir="${common.unittest.reports.emma.dir}" >
<include name="*.emma" />
</fileset>
<xml outfile="${common.unittest.reports.emma.dir}/coverage.xml" depth="package"/>
<html outfile="${common.unittest.reports.emma.dir}/coverage.html" depth="method" columns="name,class,method,block,line"/>
</report>
</emma>-->
</target>
</project>