blob: 191f8e9eef20078f99ee2bcb35f93b10c2405037 [file] [log] [blame]
<project
name="Build specific targets and properties"
default="runTest">
<!--
Note to be cross-platform, "environment variables" are only
appropriate for some variables, e.g. ones we set, since
properties are case sensitive, even if the environment variables
on your operating system are not, e.g. it will be ${env.Path}
not ${env.PATH} on Windows
-->
<property
environment="env"/>
<fail
message="testRoot must be set for this task"
unless="testRoot"/>
<!-- required to get proper value of dropinsFolder -->
<property
name="keyCfgFile"
value="${env.PROJECT_BUILDERS}/${projectname}/${env.RELENG}/maps/build.cfg"/>
<echo
level="debug"
message="keyCfgFile: ${keyCfgFile}"/>
<property
file="${keyCfgFile}"/>
<!--
typcially already set, but in case of standalone tests, may not
be
-->
<property
name="buildLabel"
value="${buildType}-${buildId}-${timestamp}"/>
<!--
Steps to do after the build is done.
-->
<target
name="test">
<dirname
file="${ant.file}"
property="currentDirectory"/>
<ant
antfile="${ant.file}"
target="runTest"
dir="${currentDirectory}"/>
</target>
<!--
Steps to do to test the build results
-->
<target
name="runTest">
<dirname
file="${ant.file}"
property="test.component.dir"/>
<ant
antfile="${wtp.builder.home}/scripts/build/label.xml"/>
<property
file="${buildDirectory}/label.properties"/>
<property
file="${wtp.builder.home}/build.properties"/>
<fail
message="testRoot must be set for this task"
unless="testRoot"/>
<mkdir
dir="${testRoot}"/>
<!-- if results already exist, delete them -->
<delete
dir="${testRoot}/results"
failOnError="false"/>
<mkdir
dir="${testRoot}/results"/>
<mkdir
dir="${testRoot}/results/consolelogs"/>
<copy
todir="${testRoot}"
overwrite="true">
<fileset
dir="${test.component.dir}/testScripts"/>
</copy>
<echo
message="BASEOS: ${env.BASEOS} BASEWS: ${env.BASEWS} BASEARCH: ${env.BASEARCH} "/>
<ant
antfile="${test.component.dir}/testdependency.xml"
target="get">
<property
name="dependency.properties"
value="${buildDirectory}/maps/${env.RELENG}${env.DEP_DIR}/maps/dependencies.properties"/>
<property
name="base.install.dir"
value="${testRoot}"/>
</ant>
<antcall
target="unzipTests"/>
<antcall
target="runTestEclipse">
<param
name="testTarget"
value="all"/>
</antcall>
<antcall
target="postRunTestEclipse">
<param
name="testTarget"
value="all"/>
</antcall>
</target>
<target
name="unzipTests">
<!--
unzip the builds and junit tests we use 'unzip' here, so we
can continue on error, if desired. (such as if zip was not
created, due to other failures or options).
-->
<echo
message="installing sdk"/>
<exec
dir="${buildDirectory}/${buildLabel}"
executable="unzip"
failonerror="true">
<arg
line="-o -qq @zipprefix@-sdk-${buildLabel}.zip -d ${testRoot}${dropinsFolder}"/>
</exec>
<echo
message="installing tests"/>
<exec
dir="${buildDirectory}/${buildLabel}"
executable="unzip"
failonerror="false">
<arg
line="-o -qq @zipprefix@-tests-${buildLabel}.zip -d ${testRoot}${dropinsFolder}"/>
</exec>
</target>
<!--
time out may need to be set/adjust for api or performance tests?
This testTimeLimit is the whole, overall limit on tests. There's
a shorter one for individual suites. some common values, of
milliseconds to more recognizable units: 7200000: 2 hours
3600000: 1 hour 1800000: 30 minutes 600000: 10 minutes
-->
<property
name="testTimeLimit"
value="7200000"/>
<property
name="testFailOnError"
value="false"/>
<target
name="runTestEclipse"
description="Run our JUnit's within an instance of antRunner">
<property
name="test-vm"
value="${env.JAVA_6_HOME}/bin/java"/>
<!--
set path to eclipse folder. If local folder, use '.';
otherwise, use c:\path\to\eclipse or /path/to/eclipse/
-->
<property
name="eclipse.home"
value="${testRoot}"/>
<echo
message="Running junits"/>
<!--
Remember: using -debug for org.eclipse.ant.core.antRunner
produces ant debug info to be output ... which is a TON of
stuff
-->
<echo
message="eclipse.launcher: ${eclipse.launcher}"/>
<java
taskname="unit-test-masterprocess"
fork="true"
resultProperty="wtpmasterjunitresult"
failonerror="false"
timeout="${testTimeLimit}"
dir="${testRoot}/eclipse"
jvm="${env.JAVA_6_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="-Xmx512m"/>
<jvmarg
value="-Dosgi.ws=${env.BASEWS}"/>
<jvmarg
value="-Dosgi.os=${env.BASEOS}"/>
<jvmarg
value="-Dosgi.arch=${env.BASEARCH}"/>
<jvmarg
value="-Dws=${env.BASEWS}"/>
<jvmarg
value="-Dos=${env.BASEOS}"/>
<jvmarg
value="-Darch=${env.BASEARCH}"/>
<jvmarg
value="-Dnoclean=true"/>
<jvmarg
value="-DbuildBranch=${buildBranch}"/>
<jvmarg
value="-DbuildType=${buildType}"/>
<jvmarg
value="-DbuildId=${buildId}"/>
<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="${testRoot}/overallTestWorkspace"/>
<arg
value="-application"/>
<arg
value="org.eclipse.ant.core.antRunner"/>
<arg
value="-file"/>
<arg
value="${testRoot}/test.xml"/>
<arg
value="-logger"/>
<arg
value="org.apache.tools.ant.DefaultLogger"/>
<env
key="DISPLAY"
value="${env.DISPLAY}"/>
<redirector
output="${testRoot}/results/fullOutput.txt"
error="${testRoot}/results/fullErrorLog.txt"/>
<sysproperty
key="build.home"
value="${env.BUILD_HOME}"/>
<sysproperty
key="buildDirectory"
value="${buildDirectory}"/>
<sysproperty
key="buildLabel"
value="${buildLabel}"/>
<sysproperty
key="baseLocation"
value="${baseLocation}"/>
<sysproperty
key="testRoot"
value="${testRoot}"/>
<sysproperty
key="testDir"
value="${testRoot}"/>
<sysproperty
key="perf.buildId"
value="${buildType}${date}-${time}"/>
<sysproperty
key="eclipseBuilderDirectory"
value="${pde.builder.path}"/>
<sysproperty
key="buildLabel"
value="${buildLabel}"/>
</java>
<echo
message="wtpmasterjunitresult ${wtpmasterjunitresult}"/>
</target>
<target
name="postRunTestEclipse">
<copy
todir="${buildDirectory}/${buildLabel}/testResults/consolelogs/testLogs"
overwrite="true"
failonerror="false">
<fileset
dir="${testRoot}/results">
<include
name="*output.txt"/>
</fileset>
</copy>
<copy
todir="${buildDirectory}/${buildLabel}/testResults/consolelogs/testSysErrorLogs"
overwrite="true"
failonerror="false">
<fileset
dir="${testRoot}/results">
<include
name="*error.txt"/>
</fileset>
</copy>
<copy
file="${testRoot}/results/fullOutput.txt"
toDir="${buildDirectory}/${buildLabel}/testResults/consolelogs/full"
overwrite="true"
failonerror="false">
</copy>
<copy
file="${testRoot}/results/fullErrorLog.txt"
toDir="${buildDirectory}/${buildLabel}/testResults/consolelogs/full"
overwrite="true"
failonerror="false">
</copy>
<copy
todir="${buildDirectory}/${buildLabel}/testResults/xml"
overwrite="true"
failonerror="false">
<fileset
dir="${testRoot}/results/xml">
<include
name="*.xml"/>
</fileset>
</copy>
<copy
todir="${buildDirectory}/${buildLabel}/testResults/html"
overwrite="true"
failonerror="false">
<fileset
dir="${testRoot}/results/html">
<include
name="*.html"/>
</fileset>
</copy>
</target>
</project>