blob: ac357a0287222f923ad6195e092f018cacbb4ef4 [file] [log] [blame]
<project name="Targets to run Automated Tests Locally and Remotely" default="main" basedir=".">
<!--
This script must be called with the ${tester} property set.
The testing.properties file must contain definitions for all other properties in this script if they are not
set in a calling script or command line. See test.properties.template for property descriptions.
-->
<property name="customTest" value="${tester}/customTest.xml" />
<property name="testing.properties" value="${tester}/testing.properties" />
<property file="${testing.properties}" />
<property name="dropLocation" value="${buildDirectory}" />
<target name="main">
<antcall target="${testTarget}" />
</target>
<!--
Targets for setting up and running tests remotely
It is assumed that keys are set up on test machines to permit connections without user name and password prompts.
-->
<target name="runtests-remote" depends="setRemoteLoginClient,setRemoteCopyClient">
<property name="testResults" value="${dropLocation}/${buildLabel}/testresults" />
<exec dir="." executable="${loginClient}">
<arg line="${testMachine} mkdir ${testDir}" />
</exec>
<!--install the vm used for testing-->
<antcall target="installVmForRemote" />
<!--set up the automated testing framework-->
<exec dir="." executable="${copyClient}">
<arg line="${dropLocation}/${buildLabel}/${testFramework} ${testMachine}:${testDir}" />
</exec>
<exec dir="." executable="${loginClient}">
<arg line="${testMachine} unzip -o -qq ${testDir}/${testFramework} -d ${testDir}" />
</exec>
<exec dir="." executable="${copyClient}">
<arg line="${dropLocation}/${buildLabel}/${runtime} ${testMachine}:${executionDir}" />
</exec>
<!--callback to custom script for post setup-->
<ant antfile="${customTest}" target="customSetup" dir="${basedir}" />
<exec dir="." executable="${loginClient}">
<arg line="${testMachine} ${testScript} ${args}" />
</exec>
<!--${testResults} and ${testResults}/consolelogs must exist before rcp and scp copy operations.
Directories contents are copied flattened if the destination directories don't exist.-->
<mkdir dir="${testResults}/consolelogs" />
<exec dir="." executable="${copyClient}">
<arg line="-r ${testMachine}:${executionDir}/results/* ${testResults}" />
</exec>
<!-- copy the console log from testing -->
<exec dir="." executable="${copyClient}">
<arg line="-r ${testMachine}:${executionDir}/${consolelog} ${testResults}/consolelogs" />
</exec>
</target>
<target name="setRemoteLoginClient">
<!--use rsh if rsh is set, otherwise use default, ssh-->
<condition property="loginClient" value="rsh">
<isset property="rsh" />
</condition>
<!--default remote login client-->
<property name="loginClient" value="ssh" />
</target>
<target name="setRemoteCopyClient">
<!--use rcp if rsh is set, otherwise use default, scp-->
<condition property="copyClient" value="rcp">
<isset property="rsh" />
</condition>
<!--default remote copy client-->
<property name="copyClient" value="scp" />
</target>
<target name="installVmForRemote" unless="skipVmInstall">
<available file="${vmDest}" property="vmExists" />
<antcall target="getVM" />
<exec dir="." executable="${copyClient}">
<arg line="${vmDest} ${testMachine}:${testDir}" />
</exec>
<exec dir="." executable="${loginClient}">
<arg line="${testMachine} ${vmInstallCommand}" />
</exec>
</target>
<!--
Targets for setting up and running tests locally
-->
<target name="runtests-local">
<delete dir="${testDir}" quiet="true" />
<mkdir dir="${testDir}" />
<property name="testResults" value="${dropLocation}/${buildLabel}/testresults" />
<!--set up testing directory-->
<unzip src="${dropLocation}/${buildLabel}/${testFramework}" dest="${testDir}" />
<!--install the vm used for testing-->
<antcall target="installVmForLocal" />
<!--copy in the runtime to test-->
<copy todir="${executionDir}" file="${dropLocation}/${buildLabel}/${runtime}" />
<!--callback to custom script for additional setup-->
<ant antfile="${customTest}" target="customSetup" dir="${basedir}" />
<!--run the tests-->
<exec dir="${executionDir}" executable="${testExecutable}">
<arg line="${args}" />
</exec>
<mkdir dir="${testResults}" />
<mkdir dir="${testResults}/consolelogs" />
<copy todir="${testResults}">
<fileset dir="${executionDir}/results" />
</copy>
<copy todir="${testResults}/consolelogs" file="${executionDir}/${consolelog}" />
</target>
<target name="installVmForLocal" unless="skipVmInstall">
<available file="${vmDest}" property="vmExists" />
<antcall target="getVM" />
<exec dir="${testDir}" executable="${vmInstallExecutable}">
<arg line="${vmInstallCommand}" />
</exec>
</target>
<target name="getVM" unless="vmExists">
<get src="${vmUrl}" dest="${vmDest}" usetimestamp="true" />
</target>
<target name="runtests-hudson">
<!-- <delete dir="${testDir}" quiet="true" /> -->
<mkdir dir="${testDir}" />
<property name="testResults" value="${testDir}/testresults" />
<!--set up testing directory-->
<unzip src="${testFramework}" dest="${testDir}" overwrite="false">
<patternset>
<exclude name="**/equinoxp2tests.properties" />
</patternset>
</unzip>
<echo message="executionDir ${executionDir} testExecutable ${testExecutable} testScript ${testScript} args ${args}" />
<!--callback to custom script for post setup-->
<!-- <ant antfile="${customTest}" target="customSetup" dir="${basedir}" /> -->
<condition property="executionArguments" value="/c ${testScript} ${args}">
<and>
<os family="windows" />
</and>
</condition>
<property name="executionArguments" value="${testScript} ${args}" />
<!--run the tests-->
<exec dir="${executionDir}" executable="${testExecutable}">
<arg line="${executionArguments}" />
</exec>
<!-- <arg line="${testScript} ${args}" /> -->
<!-- <mkdir dir="${testResults}" />
<mkdir dir="${testResults}/consolelogs" /> -->
<!-- <copy todir="${testResults}">
<fileset dir="${executionDir}/results" />
</copy> -->
<!-- <copy todir="${testResults}/consolelogs" file="${executionDir}/${consolelog}" /> -->
</target>
</project>