blob: 9d3231c6b480df82a21acc86307c00730170d51d [file] [log] [blame]
<?xml version="1.0"?>
<project
name="JUnit tests"
basedir=".">
<property environment="env" />
<target name="init">
<!--
Parameters:
(Mandatory)
data-dir - the workspace directory for Eclipse to write its data
plugin-name - symboic name of the plugin to test
testPlugin - directory name of plugin (with version suffix)
classname - the name of the test class
(Optional - overrides defaults set in script)
extraVMargs - allows separate setting of VM args from separate caller.
timeout - overrides default test timeout value (in milliseconds).
-->
<property
name="junit-report-output"
value="${testRoot}/results" />
<mkdir dir="${junit-report-output}/raw" />
<!-- if not otherwise set, be sure extraVMargs is at least empty string -->
<property
name="extraVMargs"
value="" />
<!-- if not otherwise set, use a unique workspace name -->
<property
name="data-dir"
value="${testRoot}/junitworkspaces/workspace-${classname}" />
<property
name="testRoot"
value="${testRoot}" />
<property
name="timeout"
value="1800000" />
<property
name="junit-report-output"
value="${junit-report-output}" />
<property
name="plugin-path"
value="${testRoot}/plugins/${testPlugin}" />
<property
name="formatter"
value="org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter" />
<property
name="test-output"
value="${junit-report-output}/raw/${classname}.xml" />
<property
name="jvm"
value="${env.JAVA_5_HOME}/bin/java" />
<dirname
file="${ant.file}"
property="currentDir" />
<echo
level="debug"
message="data-dir: ${data-dir}" />
<echo
level="debug"
message="plugin-name: ${plugin-name}" />
<echo
level="debug"
message="testPlugin: ${testPlugin}" />
<echo
level="debug"
message="classname: ${classname}" />
<echo
level="debug"
message="extraVMargs: ${extraVMargs}" />
<echo
level="debug"
message="timeout: ${timeout}" />
<echo
level="debug"
message="testRoot: ${testRoot}" />
<echo
level="debug"
message="basedir: ${basedir}" />
<echo
level="debug"
message="eclipse-home: ${eclipse-home}" />
<echo
level="debug"
message="plugin-path: ${plugin-path}" />
<echo
level="debug"
message="junit-report-output: ${junit-report-output}" />
<echo
level="debug"
message="test-output: ${test-output}" />
<echo
level="debug"
message="buildDirectory: ${buildDirectory}" />
<echo
level="debug"
message="buildLabel: ${buildLabel}" />
<echo
level="debug"
message="jvm: ${env.JAVA_5_HOME}/bin/java" />
</target>
<target
name="core-test"
depends="init">
<echo
level="info"
message="test-type: core-test" />
<ant
antfile="${ant.file}"
dir="${currentDir}"
target="eclipse-test">
<property
name="application"
value="org.eclipse.test.coretestapplication" />
</ant>
</target>
<target
name="ui-test"
depends="init">
<echo
level="info"
message="test-type: ui-test" />
<ant
antfile="${ant.file}"
dir="${currentDir}"
target="eclipse-test">
<property
name="application"
value="org.eclipse.test.uitestapplication" />
</ant>
</target>
<target
name="eclipse-test"
description="Runs the specified classname as a plug-in test.">
<echo
level="info"
message="Running ${classname}" />
<echo
level="debug"
message="Result file: ${junit-report-output}/${classname}.xml." />
<echo
level="debug"
message="DISPLAY: ${env.DISPLAY}" />
<!-- If there is not exactly one launcher in the stack,
we'd best fail fast, since we are not expecting that,
and may indicate an installation that would produce unpredictable
results -->
<!-- requires ant 1.7, and at this point, we're running 1.6 from
eclipse ...
<condition property="expectedNumberOfLaunchers">
<resourcecount when="equal" count="1" >
<fileset dir="${testRoot}/eclipse/plugins">
<include name="org.eclipse.equinox.launcher_*.jar" />
</fileset>
</resourcecount>
</condition>
<fail message="Did not find expected number of launcher jars. Check installation." unless="expectedNumberOfLaunchers" />
-->
<java
taskname="suiteUnitTest"
fork="true"
resultProperty="suitejunitresult"
failonerror="false"
timeout="${timeout}"
dir="${testRoot}/eclipse"
jvm="${env.JAVA_5_HOME}/bin/java"
classname="org.eclipse.equinox.launcher.Main">
<classpath>
<fileset dir="${testRoot}/eclipse/plugins">
<include name="org.eclipse.equinox.launcher_*.jar" />
</fileset>
</classpath>
<jvmarg value="-Xms256m" />
<jvmarg value="-Xmx1024m" />
<jvmarg value="-Dosgi.ws=${env.BASEWS}" />
<jvmarg value="-Dosgi.os=${env.BASEOS}" />
<jvmarg value="-Dosgi.arch=${env.BASEARCH}" />
<jvmarg value="-DbuildLabel=${buildLabel}" />
<jvmarg value="-DbuildDirectory=${buildDirectory}" />
<jvmarg value="-Djava.protocol.handler.pkgs=com.ibm.etools.www.protocol" />
<jvmarg value="-DurlLogLocation=${buildDirectory}/outgoinghttplogfromtests.log" />
<jvmarg value="-Dwtp.autotest.noninteractive=true" />
<jvmarg value="-DPLUGIN_PATH=${plugin-path}" />
<jvmarg line="${extraVMargs}" />
<jvmarg value="-Djava.io.tmpdir=${env.RECOMMENDED_TMP_DIR}" />
<jvmarg
value="-Dprojectname=${projectname}" />
<arg value="-nosplash" />
<arg value="-consolelog" />
<arg value="-debug" />
<arg value="-data" />
<arg value="${data-dir}" />
<arg value="-application" />
<arg value="${application}" />
<arg value="formatter=${formatter},${test-output}" />
<arg value="-testPluginName" />
<arg value="${plugin-name}" />
<arg value="-className" />
<arg value="${classname}" />
<env
key="DISPLAY"
value="${env.DISPLAY}" />
<redirector
output="${junit-report-output}/${classname}.output.txt"
error="${junit-report-output}/${classname}.error.txt" />
</java>
<antcall target="collect-results" />
<echo
level="info"
message="suitejunitresult: ${suitejunitresult}" />
</target>
<target name="collect-results">
<dirname
property="output-dir"
file="${test-output}" />
<basename
property="output-file-name"
file="${test-output}" />
<mkdir dir="${junit-report-output}/xml" />
<junitreport
todir="${junit-report-output}/xml"
tofile="${classname}.xml">
<fileset dir="${output-dir}">
<include name="${output-file-name}" />
</fileset>
</junitreport>
<mkdir dir="${junit-report-output}/html" />
<xslt
style="${testRoot}/JUNIT.XSL"
basedir="${junit-report-output}"
includes="${classname}.xml"
destdir="${junit-report-output}/html" />
<copy
file="${data-dir}/.metadata/.log"
toFile="${testRoot}/results/consolelogs/metadata-logs/${classname}.workspace.log"
overwrite="true"
failonError="false" />
<!-- todo: this, especially, should be concat (there could be more than one, in theory) -->
<copy
file="${testRoot}/eclipse/configuration/*.log"
toFile="${testRoot}/results/consolelogs/configuration-logs/${classname}.config.log"
overwrite="true"
failonError="false" />
</target>
</project>