blob: c8bb7f658c218fbd51aaa66ecfc33c3f98927186 [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" />
<!-- ===================================================================== -->
<!-- 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" />
<mkdir dir="${testRoot}/results/consolelogs/metadata-logs" />
<mkdir dir="${testRoot}/results/consolelogs/configuration-logs" />
<copy todir="${testRoot}" overwrite="true">
<fileset dir="${test.component.dir}/testScripts"></fileset>
</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/releng/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
(such as if zip was not created, due to other failures or options).
-->
<exec dir="${buildDirectory}/${buildLabel}" executable="unzip"
failonerror="false">
<arg line="-o -qq wtp-sdk-${buildLabel}.zip -d ${testRoot}" />
</exec>
<exec dir="${buildDirectory}/${buildLabel}" executable="unzip"
failonerror="false">
<arg
line="-o -qq wtp-wst-Automated-Tests-${buildLabel}.zip -d ${testRoot}" />
</exec>
<exec dir="${buildDirectory}/${buildLabel}" executable="unzip"
failonerror="false">
<arg
line="-o -qq wtp-jst-Automated-Tests-${buildLabel}.zip -d ${testRoot}" />
</exec>
<exec dir="${buildDirectory}/${buildLabel}" executable="unzip"
failonerror="false">
<arg
line="-o -qq wtp-jsf-sdk-${buildLabel}.zip -d ${testRoot}" />
</exec>
<exec dir="${buildDirectory}/${buildLabel}" executable="unzip"
failonerror="false">
<arg
line="-o -qq wtp-jsf-Automated-Tests-${buildLabel}.zip -d ${testRoot}" />
</exec>
<exec dir="${buildDirectory}/${buildLabel}" executable="unzip"
failonerror="false">
<arg line="-o -qq wtp-jpa-${buildLabel}.zip -d ${testRoot}" />
</exec>
<exec dir="${buildDirectory}/${buildLabel}" executable="unzip"
failonerror="false">
<arg
line="-o -qq wtp-jpa-Automated-Tests-${buildLabel}.zip -d ${testRoot}" />
</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_5_HOME}/bin/java" />
<property name="plugin-path"
value="${testRoot}/eclipse/plugins" />
<property name="vmargs"
value="-Xms256m -Xmx512m -Dosgi.ws=${env.BASEWS} -Dosgi.os=${env.BASEOS} -Dosgi.arch=${env.BASEARCH} -Dws=${env.BASEWS} -Dos=${env.BASEOS} -Darch=${env.BASEARCH} -Dosgi.clean=true -Dnoclean=true -DbuildBranch=${buildBranch} -DbuildType=${buildType} -DbuildId=${buildId} -DtestRoot=${testRoot} -DtestDir=${testRoot} -DbuildDirectory=${buildDirectory} -Dbuild.home=${env.BUILD_HOME} -Dperf.buildId=${buildType}${date}-${time} -DeclipseBuilderDirectory=${pde.builder.path} -DbuildLabel=${buildLabel} -Dtest-vm=${test-vm} -DbuildDirectory=${buildDirectory} -Dbuild.home=${env.BUILD_HOME} -Dperf.buildId=${buildType}${date}-${time} -DeclipseBuilderDirectory=${pde.builder.path} -DbuildLabel=${buildLabel}" />
<!-- -DbuildDirectory=${buildDirectory} -Dbuild.home=${env.BUILD_HOME} -Dperf.buildId=${buildType}${date}-${time} -DeclipseBuilderDirectory=${pde.builder.path} -DbuildLabel=${buildLabel} -->
<echo message="Running junits" />
<java taskname="unit-test-masterprocess" fork="true"
resultProperty="wtpmasterjunitresult" failonerror="false"
timeout="${testTimeLimit}" 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>
<arg line="-nosplash -suppressErrors -consoleLog" />
<arg value="-vm ${env.JAVA_5_HOME}/bin/java" />
<arg value="-data ${testRoot}/results/antRunnerWorkspace" />
<arg
value="-application org.eclipse.ant.core.antRunner -file ${testRoot}/test.xml all" />
<arg value="-vmarg ${vmargs}" />
<env key="DISPLAY" value="${env.DISPLAY}" />
<redirector output="${testRoot}/results/fullOutput.txt"
error="${testRoot}/results/fullErrorLog.txt" alwayslog="true" />
</java>
</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>