<!--
    Copyright (c) 2011, 2019 IBM Corporation and others.
    This program and the accompanying materials
    are made available under the terms of the Eclipse Public License 2.0
    which accompanies this distribution, and is available at
    https://www.eclipse.org/legal/epl-2.0/

    SPDX-License-Identifier: EPL-2.0

    Contributors:
        IBM Corporation - initial API and implementation
 -->
<project
    name="Automated Eclipse Testing"
    default="all"
    basedir=".">
	<!--properties file containing the plugin directory name including version 
		number, and list of required test plug-ins expressed as command-line argument 
		to unzip executable. Generated and packaged at build time. -->
    <property file="test.properties"/>

    <property environment="env"/>

    <property
        name="J2SE-5.0"
        value="%JAVA_6_HOME%/jre/bin/java"/>
    <property
        name="J2SE-6.0"
        value="%JAVA_6_HOME%/jre/bin/java"/>
    <property
        name="java.home"
        value="%JAVA_HOME%/jre"/>
	<!--properties file containing the build information -->
    <property file="label.properties"/>

	<!--default directory where test-eclipse will be installed <property name="install" 
		value="${basedir}" /> -->

	<!--suffix added to test output files to identify platform on which tests 
		ran. -->
    <property
        name="platform"
        value="${os}.${ws}.${arch}"/>

	<!-- The root of the eclipse installation -->
    <property
        name="eclipse-home"
        value="${basedir}/eclipse"/>
    <property
        name="repoZip"
        value="${basedir}/eclipse-junit-tests-${buildId}.zip"/>
    <property
        name="repoLocation"
        value="${basedir}/testRepo"/>
    <property
        name="platformLocation"
        value="${basedir}/platformLocation"/>

	<!-- The directory that will contain all files containing information on 
		the tests that ran. -->
    <property
        name="results"
        value="${basedir}/results"/>

	<!--Directory for JUnit report output, console log output and .log content 
		for each test suite. Overrides default in org.eclipse.test/library.xml -->
    <property
        name="junit-report-output"
        value="${results}/${platform}"/>

	<!--Directory name of org.eclipse.test plug-in installed in ${eclipse-home} -->
    <target
        name="setup"
        depends="init">
        <condition
            property="setupTarget"
            value="setup-zip">
            <contains
                string="${runtimeArchive}"
                substring=".zip"/>
        </condition>
        <condition
            property="setupTarget"
            value="setup-tar.gz">
            <contains
                string="${runtimeArchive}"
                substring=".tar.gz"/>
        </condition>
        <condition
            property="repoexists"
            value="true">
            <available file="${repoLocation}"/>
        </condition>
        <condition
            property="extraIU"
            value="org.eclipse.equinox.p2.discovery.feature.feature.group">
            <equals
                arg1="${testPlugin}"
                arg2="org.eclipse.equinox.p2.tests.discovery"/>
        </condition>
        <antcall target="setupRepo"/>
		<!--<antcall target="${setupTarget}" /> <antcall target="configureDeltaPack" 
			/> -->
    </target>

	<!--Extract test bundles repo -->
    <target
        name="setupRepo"
        unless="repoexists">
        <mkdir dir="${repoLocation}"/>
        <exec
            dir="."
            executable="unzip">
            <arg line="-o ${repoZip} -d ${repoLocation}"/>
        </exec>
    </target>

	<!--setup for zip archives -->
    <target
        name="setup-zip"
        description="Reinstall the test Eclipse installation if specified by user">
        <delete dir="${eclipse-home}"/>
        <mkdir dir="${eclipse-home}"/>
        <exec
            dir="."
            executable="unzip">
            <arg line="-o -qq ${runtimeArchive} -d ${basedir}"/>
        </exec>
        <antcall target="installExtraPlugins"/>
        <antcall target="installTestPlugins"/>
    </target>

	<!--setup for tar.gz archives -->
    <target
        name="setup-tar.gz"
        description="Reinstall the test Eclipse installation if specified by user">
        <property
            name="currentDir"
            value="${basedir}"/>
        <delete dir="${eclipse-home}"/>
        <mkdir dir="${eclipse-home}"/>
        <exec
            dir="${eclipse-home}"
            executable="tar">
            <arg line="-xzf ${currentDir}/${runtimeArchive}"/>
        </exec>
        <antcall target="installExtraPlugins"/>
        <antcall target="installTestPlugins"/>
    </target>

	<!--use an stable version of the director so that instability in the current 
		build doesn't cause all the tests to fail -->
    <target name="setupPlatform">
        <property file="equinoxp2tests.properties"/>
        <condition
            property="platformArchive"
            value="${org.eclipse.equinox.p2.reconciler.tests.35.platform.archive.linux}">
            <os family="unix"/>
        </condition>
        <condition
            property="platformArchive"
            value="${org.eclipse.equinox.p2.reconciler.tests.35.platform.archive.macosx}">
            <os family="mac"/>
        </condition>
        <condition
            property="platformArchive"
            value="${org.eclipse.equinox.p2.reconciler.tests.platform.archive.win32}">
            <os family="windows"/>
        </condition>
        <condition
            property="platformTarget"
            value="platform-zip">
            <contains
                string="${platformArchive}"
                substring=".zip"/>
        </condition>
        <condition
            property="platformTarget"
            value="platform-tar.gz">
            <contains
                string="${platformArchive}"
                substring=".tar.gz"/>
        </condition>
        <echo message="platform target ${platformTarget} platformArchive ${platformArchive}"/>
        <antcall target="${platformTarget}"/>
    </target>


	<!--setup for platform zip archives -->
    <target
        name="platform-zip"
        description="Reinstall the test Eclipse installation if specified by user">
        <delete dir="${platformLocation}"/>
        <mkdir dir="${platformLocation}"/>
        <exec
            dir="${platformLocation}"
            executable="unzip">
            <arg line="-o -qq ${platformArchive} -d ${platformLocation}"/>
        </exec>
    </target>

	<!--setup for platform tar.gz archives -->
    <target
        name="platform-tar.gz"
        description="Reinstall the test Eclipse installation if specified by user">
        <delete dir="${platformLocation}"/>
        <mkdir dir="${platformLocation}"/>
        <exec
            dir="${platformLocation}"
            executable="tar">
            <arg line="-xzf ${platformArchive}"/>
        </exec>
    </target>

    <target
        name="installExtraPlugins"
        if="extraIU">
        <property file="equinoxp2tests.properties"/>
        <property
            name="currentBuildRepo"
            value="${org.eclipse.equinox.p2.tests.current.build.repo}"/>
        <echo>-installIU ${extraIU} +</echo>
        <exec
            executable="${eclipse-home}/eclipse"
            failonerror="false"
            dir="${eclipse-home}"
            timeout="900000"
            output="${basedir}/director.log"
            resultproperty="directorcode">
            <arg line="-vm ${java.home}/bin/java"/>
            <arg line="-application org.eclipse.equinox.p2.director"/>
            <arg line="-nosplash"/>
            <arg line="--launcher.suppressErrors"/>
            <arg line="-consoleLog"/>
            <arg line="-flavor tooling"/>
            <arg line="-installIUs ${extraIU}"/>
            <arg line="-p2.os ${os}"/>
            <arg line="-p2.ws ${ws}"/>
            <arg line="-p2.arch ${arch}"/>
            <arg line="-roaming"/>
            <arg line="-profile SDKProfile"/>
            <arg line="-repository ${currentBuildRepo}"/>
            <arg line="-destination ${eclipse-home}"/>
            <arg line="-bundlepool ${eclipse-home}"/>
        </exec>
    </target>

    <target name="installTestPlugins">
		<!--<antcall target="setupPlatform" /> -->
        <echo>-installIU ${testPlugin} +</echo>
        <exec
            executable="${eclipse-home}/eclipse"
            failonerror="true"
            dir="${eclipse-home}"
            timeout="900000"
            output="${basedir}/director.log"
            resultproperty="directorcode">
            <arg line="-vm ${java.home}/bin/java"/>
            <arg line="-application org.eclipse.equinox.p2.director"/>
            <arg line="-nosplash"/>
            <arg line="--launcher.suppressErrors"/>
            <arg line="-consoleLog"/>
            <arg line="-flavor tooling"/>
            <arg line="-installIUs ${testPlugin}"/>
            <arg line="-p2.os ${os}"/>
            <arg line="-p2.ws ${ws}"/>
            <arg line="-p2.arch ${arch}"/>
            <arg line="-roaming"/>
            <arg line="-profile SDKProfile"/>
            <arg line="-repository file:${repoLocation}"/>
            <arg line="-destination ${eclipse-home}"/>
            <arg line="-bundlepool ${eclipse-home}"/>
        </exec>
		<!--<antcall target="configureTeamTest" /> <antcall target="unzipderby" 
			/> -->
    </target>


    <target
        name="unzipderby"
        if="derby">
        <exec
            dir="."
            executable="unzip">
            <arg line="-o eclipse-junit-tests-*.zip ${derby} -d ${eclipse-home}"/>
        </exec>
        <copy todir="${eclipse-home}/dropins/eclipse/plugins">
            <fileset
                dir="${repoLocation}/eclipse/dropins/eclipse/plugins"
                includes="org.apache.derby**/*"/>
        </copy>
    </target>

    <target
        name="init"
        depends="setRuntimeArchive">
        <mkdir dir="${results}/xml"/>
        <mkdir dir="${results}/html"/>
        <mkdir dir="${junit-report-output}"/>

		<!--Unlock files on the Mac before starting tests. Required to delete some 
			workspace directories (org.eclipse.core.filebuffers.tests and Team CVS tests). -->
        <exec
            dir="${basedir}"
            executable="chflags"
            os="Mac OS X">
            <arg line="-R nouchg ${eclipse-home}"/>
        </exec>
    </target>

    <target name="setRuntimeArchive">
        <condition
            property="runtimeArchive"
            value="eclipse-SDK-${buildId}-win32.zip">
            <and>
                <equals
                    arg1="${os}"
                    arg2="win32"/>
                <equals
                    arg1="${ws}"
                    arg2="win32"/>
                <equals
                    arg1="${arch}"
                    arg2="x86"/>
            </and>
        </condition>
        <condition
            property="runtimeArchive"
            value="eclipse-SDK-${buildId}-win32-x86_64.zip">
            <and>
                <equals
                    arg1="${os}"
                    arg2="win32"/>
                <equals
                    arg1="${ws}"
                    arg2="win32"/>
                <equals
                    arg1="${arch}"
                    arg2="x86_64"/>
            </and>
        </condition>
        <condition
            property="runtimeArchive"
            value="eclipse-SDK-${buildId}-linux-gtk.tar.gz">
            <and>
                <equals
                    arg1="${os}"
                    arg2="linux"/>
                <equals
                    arg1="${ws}"
                    arg2="gtk"/>
                <equals
                    arg1="${arch}"
                    arg2="x86"/>
            </and>
        </condition>
        <condition
            property="runtimeArchive"
            value="eclipse-SDK-${buildId}-linux-motif.tar.gz">
            <and>
                <equals
                    arg1="${os}"
                    arg2="linux"/>
                <equals
                    arg1="${ws}"
                    arg2="motif"/>
                <equals
                    arg1="${arch}"
                    arg2="x86"/>
            </and>
        </condition>
        <condition
            property="runtimeArchive"
            value="eclipse-SDK-${buildId}-linux-gtk-ppc.tar.gz">
            <and>
                <equals
                    arg1="${os}"
                    arg2="linux"/>
                <equals
                    arg1="${ws}"
                    arg2="gtk"/>
                <equals
                    arg1="${arch}"
                    arg2="ppc"/>
            </and>
        </condition>
        <condition
            property="runtimeArchive"
            value="eclipse-SDK-${buildId}-linux-gtk-ppc64.tar.gz">
            <and>
                <equals
                    arg1="${os}"
                    arg2="linux"/>
                <equals
                    arg1="${ws}"
                    arg2="gtk"/>
                <equals
                    arg1="${arch}"
                    arg2="ppc64"/>
            </and>
        </condition>
        <condition
            property="runtimeArchive"
            value="eclipse-SDK-${buildId}-linux-gtk-x86_64.tar.gz">
            <and>
                <equals
                    arg1="${os}"
                    arg2="linux"/>
                <equals
                    arg1="${ws}"
                    arg2="gtk"/>
                <equals
                    arg1="${arch}"
                    arg2="x86_64"/>
            </and>
        </condition>
        <condition
            property="runtimeArchive"
            value="eclipse-SDK-${buildId}-macosx-carbon.tar.gz">
            <and>
                <equals
                    arg1="${os}"
                    arg2="macosx"/>
                <equals
                    arg1="${ws}"
                    arg2="carbon"/>
                <equals
                    arg1="${arch}"
                    arg2="ppc"/>
            </and>
        </condition>
        <condition
            property="runtimeArchive"
            value="eclipse-SDK-${buildId}-macosx-carbon.tar.gz">
            <and>
                <equals
                    arg1="${os}"
                    arg2="macosx"/>
                <equals
                    arg1="${ws}"
                    arg2="carbon"/>
                <equals
                    arg1="${arch}"
                    arg2="x86"/>
            </and>
        </condition>
        <condition
            property="runtimeArchive"
            value="eclipse-SDK-${buildId}-macosx-cocoa-ppc.tar.gz">
            <and>
                <equals
                    arg1="${os}"
                    arg2="macosx"/>
                <equals
                    arg1="${ws}"
                    arg2="cocoa"/>
                <equals
                    arg1="${arch}"
                    arg2="ppc"/>
            </and>
        </condition>
        <condition
            property="runtimeArchive"
            value="eclipse-SDK-${buildId}-macosx-cocoa.tar.gz">
            <and>
                <equals
                    arg1="${os}"
                    arg2="macosx"/>
                <equals
                    arg1="${ws}"
                    arg2="cocoa"/>
                <equals
                    arg1="${arch}"
                    arg2="x86"/>
            </and>
        </condition>
        <condition
            property="runtimeArchive"
            value="eclipse-SDK-${buildId}-macosx-cocoa-x86_64.tar.gz">
            <and>
                <equals
                    arg1="${os}"
                    arg2="macosx"/>
                <equals
                    arg1="${ws}"
                    arg2="cocoa"/>
                <equals
                    arg1="${arch}"
                    arg2="x86_64"/>
            </and>
        </condition>
        <condition
            property="runtimeArchive"
            value="eclipse-SDK-${buildId}-hpux-motif.zip">
            <and>
                <equals
                    arg1="${os}"
                    arg2="hpux"/>
                <equals
                    arg1="${ws}"
                    arg2="motif"/>
                <equals
                    arg1="${arch}"
                    arg2="ia64_32"/>
            </and>
        </condition>
        <condition
            property="runtimeArchive"
            value="eclipse-SDK-${buildId}-solaris-motif.zip">
            <and>
                <equals
                    arg1="${os}"
                    arg2="solaris"/>
                <equals
                    arg1="${ws}"
                    arg2="motif"/>
                <equals
                    arg1="${arch}"
                    arg2="sparc"/>
            </and>
        </condition>
        <condition
            property="runtimeArchive"
            value="eclipse-SDK-${buildId}-solaris-gtk.zip">
            <and>
                <equals
                    arg1="${os}"
                    arg2="solaris"/>
                <equals
                    arg1="${ws}"
                    arg2="gtk"/>
                <equals
                    arg1="${arch}"
                    arg2="sparc"/>
            </and>
        </condition>
        <condition
            property="runtimeArchive"
            value="eclipse-SDK-${buildId}-solaris-gtk-x86.zip">
            <and>
                <equals
                    arg1="${os}"
                    arg2="solaris"/>
                <equals
                    arg1="${ws}"
                    arg2="gtk"/>
                <equals
                    arg1="${arch}"
                    arg2="x86"/>
            </and>
        </condition>
        <condition
            property="runtimeArchive"
            value="eclipse-SDK-${buildId}-aix-motif.zip">
            <and>
                <equals
                    arg1="${os}"
                    arg2="aix"/>
                <equals
                    arg1="${ws}"
                    arg2="motif"/>
                <equals
                    arg1="${arch}"
                    arg2="ppc"/>
            </and>
        </condition>
        <condition
            property="runtimeArchive"
            value="eclipse-SDK-${buildId}-aix-gtk-ppc64.zip">
            <and>
                <equals
                    arg1="${os}"
                    arg2="aix"/>
                <equals
                    arg1="${ws}"
                    arg2="gtk"/>
                <equals
                    arg1="${arch}"
                    arg2="ppc64"/>
            </and>
        </condition>
    </target>

    <target
        name="setJVMProperties"
        depends="setJVMfromUserSpecified">
		<!--enable tests requiring 1.5 or 1.6 vms to run if running vm level detected 
			matches required execution environment -->
        <condition
            property="J2SE-5.0"
            value="${java.home}/bin/java">
            <or>
                <equals
                    arg1="${ant.java.version}"
                    arg2="1.5"/>
                <equals
                    arg1="${ant.java.version}"
                    arg2="1.6"/>
            </or>
        </condition>
        <condition
            property="J2SE-6.0"
            value="${java.home}/bin/java">
            <equals
                arg1="${ant.java.version}"
                arg2="1.6"/>
        </condition>

    </target>
    <target
        name="setJVMfromUserSpecified"
        if="jvm">
        <exec
            executable="${jvm}"
            outputproperty="javaversion">
            <arg line="-version"/>
        </exec>
        <echo message="java version of ${jvm} is ${javaversion}"/>
        <condition
            property="J2SE-6.0"
            value="${jvm}">
            <contains
                string="${javaversion}"
                substring="java version &quot;1.6"/>
        </condition>
        <condition
            property="J2SE-5.0"
            value="${jvm}">
            <or>
                <contains
                    string="${javaversion}"
                    substring="java version &quot;1.6"/>
                <contains
                    string="${javaversion}"
                    substring="java version &quot;1.5"/>
            </or>
        </condition>
        <echo message="J2SE-6.0:  ${J2SE-6.0}"/>
        <echo message="J2SE-5.0:  ${J2SE-5.0}"/>
    </target>


    <target
        name="configureTeamTest"
        if="teamcvs">
		<!-- Fill in cvs repository information to be able to run CVS perf tests -->
        <replace
            file="${eclipse-home}/plugins/${org.eclipse.team.tests.cvs.core}/repository.properties"
            token="@user@"
            value="${cvs_user}"/>
        <replace
            file="${eclipse-home}/plugins/${org.eclipse.team.tests.cvs.core}/repository.properties"
            token="@password@"
            value="${cvs_password}"/>
        <replace
            file="${eclipse-home}/plugins/${org.eclipse.team.tests.cvs.core}/repository.properties"
            token="@host@"
            value="${cvs_host}"/>
        <replace
            file="${eclipse-home}/plugins/${org.eclipse.team.tests.cvs.core}/repository.properties"
            token="@root@"
            value="${cvs_root}"/>
    </target>

    <target
        name="configureDeltaPack"
        if="pdebuild">
        <property
            name="deltapackArchive"
            value="eclipse-${buildId}-delta-pack.zip"/>
        <property
            name="installDeltapack"
            value="${eclipse-home}/deltapack"/>
        <mkdir dir="${installDeltapack}"/>
        <exec
            dir="."
            executable="unzip">
            <arg line="-o -qq ${deltapackArchive} -d ${installDeltapack}"/>
        </exec>
    </target>


    <macrodef name="runTests">
        <attribute name="testPlugin"/>
        <sequential>

			<!--alwasy use eclipse executable to launch tests with the exception of 
				performance tests -->
			<!--condition property="useEclipseExe" value="true"> <not> <equals arg1="${test.target}" 
				arg2="performance"/> </not> </condition -->

            <condition
                property="performance.target.present"
                value="true">
                <isset property="@{testPlugin}.has.performance.target"/>
            </condition>


			<!--override the value of this property with performance if the tests 
				run on performance machine -->
            <property
                name="test.target"
                value="performance"/>
            <property
                name="report"
                value="@{testPlugin}"/>
			<!--install db plug-ins if running performance tests -->
			<!--<condition property="derby" value="eclipse/dropins/eclipse/plugins/org.apache.derby*/**"> 
				<equals arg1="${test.target}" arg2="performance" /> </condition> -->
			<!-- <property name="derby" value="" /> -->
			<!-- <param name="testPlugin" value="${@{testPlugin}}" /> -->
            <antcall target="${test.target}">
                <param
                    name="testPlugin"
                    value="@{testPlugin}"/>
                <param
                    name="output-file"
                    value="@{testPlugin}.xml"/>
            </antcall>
        </sequential>
    </macrodef>

    <target
        name="junit"
        unless="skip.test">
        <antcall target="setup">
        </antcall>
        <property
            name="org.eclipse.test"
            value="org.eclipse.test_3.3.0"/>
        <property
            name="library-file"
            value="${basedir}/eclipse/eclipse/plugins/${org.eclipse.test}/library.xml"/>

        <echo>trying to find ${testPlugin}_*</echo>
        <fileset
            id="test.plugin.file"
            dir="${eclipse-home}/plugins">
            <filename name="${testPlugin}_*/test.xml"/>
        </fileset>
        <property
            name="testPluginX"
            refid="test.plugin.file"/>
        <echo>trying to find ${testPluginX}</echo>
        <condition
            property="pluginexists"
            value="true">
            <not>
                <equals
                    arg1="${testPluginX}"
                    arg2=""/>
            </not>
        </condition>
        <antcall target="runSuite"/>
        <antcall target="genResults"/>
    </target>

    <target
        name="runSuite"
        if="pluginexists">
        <ant
            antfile="${eclipse-home}/plugins/${testPluginX}"
            dir="${eclipse-home}"/>
    </target>


    <target
        name="runSuitePerf"
        if="pluginexists">
        <echo message="testPluginX ${testPluginX}"/>
        <ant
            antfile="${eclipse-home}/plugins/${testPluginX}"
            dir="${eclipse-home}"
            target="performance"/>
    </target>

    <target
        name="performance"
        if="performance.target.present"
        unless="skip.test">
        <antcall target="setup"/>
        <antcall target="installTestPlugins"/>
        <property
            name="org.eclipse.test"
            value="org.eclipse.test_3.3.0"/>
        <property
            name="library-file"
            value="${basedir}/eclipse/dropins/eclipseTestFramework/eclipse/plugins/${org.eclipse.test}/library.xml"/>

        <echo>trying to find ${testPlugin}_*</echo>
        <fileset
            id="test.plugin.file"
            dir="${eclipse-home}/plugins">
            <filename name="${testPlugin}_*/test.xml"/>
        </fileset>
        <property
            name="testPluginX"
            refid="test.plugin.file"/>
        <echo>trying to find ${testPluginX}</echo>
        <condition
            property="pluginexists"
            value="true">
            <not>
                <equals
                    arg1="${testPluginX}"
                    arg2=""/>
            </not>
        </condition>
        <antcall target="runSuitePerf"/>
        <antcall target="genResults"/>
    </target>

    <target name="genResults">
        <copy
            file="${eclipse-home}/${report}.xml"
            tofile="${results}/xml/${report}_${platform}.xml"
            failonerror="false"/>
        <xslt
            style="${eclipse-home}/dropins/eclipseTestFramework/eclipse/plugins/${org.eclipse.test}/JUNIT.XSL"
            basedir="${results}/xml"
            destdir="${results}/html"/>
    </target>

    <target name="ant">
        <runTests testPlugin="org.eclipse.ant.tests.core"/>
    </target>

    <target name="antui">
        <runTests testPlugin="org.eclipse.ant.tests.ui"/>
    </target>

    <target name="compare">
        <runTests testPlugin="org.eclipse.compare.tests"/>
    </target>

    <target name="debug">
        <runTests testPlugin="org.eclipse.debug.tests"/>
    </target>

    <target name="coreresources">
        <runTests testPlugin="org.eclipse.core.tests.resources"/>
    </target>

    <target name="coreruntime">
        <runTests testPlugin="org.eclipse.core.tests.runtime"/>
    </target>

    <target name="osgi">
        <runTests testPlugin="org.eclipse.osgi.tests"/>
    </target>

    <target name="coreexpressions">
        <runTests testPlugin="org.eclipse.core.expressions.tests"/>
    </target>

    <target name="ltkuirefactoringtests">
        <runTests testPlugin="org.eclipse.ltk.ui.refactoring.tests"/>
    </target>

    <target name="ltkcorerefactoringtests">
        <runTests testPlugin="org.eclipse.ltk.core.refactoring.tests"/>
    </target>

    <target name="text">
        <runTests testPlugin="org.eclipse.text.tests"/>
    </target>

    <target name="jface">
        <runTests testPlugin="org.eclipse.jface.text.tests"/>
    </target>

    <target name="jfacedatabinding">
        <runTests testPlugin="org.eclipse.jface.tests.databinding"/>
    </target>

    <target name="filebuffers">
        <runTests testPlugin="org.eclipse.core.filebuffers.tests"/>
    </target>

    <target
        name="jdttext"
        unless="skip.jdttext">
        <runTests testPlugin="org.eclipse.jdt.text.tests"/>
    </target>

    <target
        name="relEng"
        depends="setRuntimeArchive">
        <runTests testPlugin="org.eclipse.releng.tests"/>
        <move
            todir="${results}/chkpii"
            includeEmptyDirs="no"
            failonerror="false">
            <fileset dir="${results}/chkpii"/>
            <mapper
                type="glob"
                from="*"
                to="${platform}_*"/>
        </move>
    </target>

    <target name="ua">
        <runTests testPlugin="org.eclipse.ua.tests"/>
    </target>

    <target name="uadoc">
        <runTests testPlugin="org.eclipse.ua.tests.doc"/>
    </target>

    <target name="coretestsnet">
        <runTests testPlugin="org.eclipse.core.tests.net"/>
    </target>

    <target
        name="jdtcorecompiler"
        depends="setJVMProperties">
        <condition
            property="jvm"
            value="${J2SE-5.0}">
            <isset property="J2SE-5.0"/>
        </condition>
        <runTests testPlugin="org.eclipse.jdt.core.tests.compiler"/>
    </target>

    <target
        name="jdtapt"
        depends="setJVMProperties">
        <property
            name="jvm"
            value="${J2SE-5.0}"/>
		<!--only run test if J2SE-5.0 property set -->
        <condition property="skip.test">
            <not>
                <isset property="J2SE-5.0"/>
            </not>
        </condition>
        <runTests testPlugin="org.eclipse.jdt.apt.tests"/>
    </target>

    <target
        name="jdtaptpluggable"
        depends="setJVMProperties">
        <property
            name="jvm"
            value="${J2SE-6.0}"/>
		<!--only run test if J2SE-5.0 property set -->
        <condition property="skip.test">
            <not>
                <isset property="J2SE-6.0"/>
            </not>
        </condition>
        <runTests testPlugin="org.eclipse.jdt.apt.pluggable.tests"/>
    </target>


    <target
        name="jdtcorebuilder"
        depends="setJVMProperties">
		<!--Run with 1.5 vm if it is available -->
        <condition
            property="jvm"
            value="${J2SE-5.0}">
            <isset property="J2SE-5.0"/>
        </condition>
        <runTests testPlugin="org.eclipse.jdt.core.tests.builder"/>
    </target>

    <target
        name="jdtcompilertool"
        depends="setJVMProperties">
        <property
            name="jvm"
            value="${J2SE-6.0}"/>
		<!--only run test if J2SE-6.0 property set -->
        <condition property="skip.test">
            <not>
                <isset property="J2SE-6.0"/>
            </not>
        </condition>
        <runTests testPlugin="org.eclipse.jdt.compiler.tool.tests"/>
    </target>

    <target
        name="jdtcompilerapt"
        depends="setJVMProperties">
        <property
            name="jvm"
            value="${J2SE-6.0}"/>
		<!--only run test if J2SE-6.0 property set -->
        <condition property="skip.test">
            <not>
                <isset property="J2SE-6.0"/>
            </not>
        </condition>
        <runTests testPlugin="org.eclipse.jdt.compiler.apt.tests"/>
    </target>

    <target
        name="jdtcoremodel"
        depends="setJVMProperties">
        <condition
            property="jvm"
            value="${J2SE-5.0}">
            <isset property="J2SE-5.0"/>
        </condition>
        <runTests testPlugin="org.eclipse.jdt.core.tests.model"/>
    </target>

    <target name="jdtcoreperf">
        <runTests testPlugin="org.eclipse.jdt.core.tests.performance"/>
    </target>

    <target name="jdtdebug">
        <runTests testPlugin="org.eclipse.jdt.debug.tests"/>
    </target>

    <target name="jdtui">
        <runTests testPlugin="org.eclipse.jdt.ui.tests"/>
    </target>

    <target name="jdtuirefactoring">
        <runTests testPlugin="org.eclipse.jdt.ui.tests.refactoring"/>
    </target>

    <target name="pdeui">
        <runTests testPlugin="org.eclipse.pde.ui.tests"/>
    </target>

    <target name="pdebuild">
        <property
            name="pdebuild"
            value="true"/>
        <runTests testPlugin="org.eclipse.pde.build.tests"/>
    </target>

    <target name="swt">
        <runTests testPlugin="org.eclipse.swt.tests"/>
    </target>

    <target name="teamcore">
        <runTests testPlugin="org.eclipse.team.tests.core"/>
    </target>

    <target name="teamcvs">
        <property
            name="teamcvs"
            value="true"/>
        <runTests testPlugin="org.eclipse.team.tests.cvs.core"/>
    </target>

    <target name="ui">
        <runTests testPlugin="org.eclipse.ui.tests"/>
    </target>

    <target name="uinavigator">
        <runTests testPlugin="org.eclipse.ui.tests.navigator"/>
    </target>

    <target name="uircp">
        <runTests testPlugin="org.eclipse.ui.tests.rcp"/>
    </target>

    <target name="uiforms">
        <runTests testPlugin="org.eclipse.ui.tests.forms"/>
    </target>

    <target name="uieditors">
        <runTests testPlugin="org.eclipse.ui.editors.tests"/>
    </target>

    <target name="uiperformance">
        <runTests testPlugin="org.eclipse.ui.tests.performance"/>
    </target>

    <target name="uiviews">
        <runTests testPlugin="org.eclipse.ui.tests.views.properties.tabbed"/>
    </target>

    <target name="uiworkbenchtexteditor">
        <runTests testPlugin="org.eclipse.ui.workbench.texteditor.tests"/>
    </target>

    <target name="update">
        <runTests testPlugin="org.eclipse.update.tests.core"/>
    </target>

    <target
        name="pdeapitooling"
        depends="setJVMProperties">
        <property
            name="jvm"
            value="${J2SE-5.0}"/>
		<!--only run test if J2SE-5.0 property set -->
        <condition property="skip.test">
            <not>
                <isset property="J2SE-5.0"/>
            </not>
        </condition>
        <runTests testPlugin="org.eclipse.pde.api.tools.tests"/>
    </target>

    <target name="equinoxsecurity">
        <runTests testPlugin="org.eclipse.equinox.security.tests"/>
    </target>

    <target
        name="equinoxp2"
        depends="setJVMProperties">
        <property
            name="jvm"
            value="${J2SE-5.0}"/>
		<!--only run test if J2SE-5.0 property set -->
        <condition property="skip.test">
            <not>
                <isset property="J2SE-5.0"/>
            </not>
        </condition>
        <runTests testPlugin="org.eclipse.equinox.p2.tests"/>
    </target>

    <target
        name="equinoxp2ui"
        depends="setJVMProperties">
        <property
            name="jvm"
            value="${J2SE-5.0}"/>
		<!--only run test if J2SE-5.0 property set -->
        <condition property="skip.test">
            <not>
                <isset property="J2SE-5.0"/>
            </not>
        </condition>
        <runTests testPlugin="org.eclipse.equinox.p2.tests.ui"/>
    </target>

    <target
        name="equinoxp2discovery"
        depends="setJVMProperties">
        <property
            name="jvm"
            value="${J2SE-5.0}"/>
		<!--only run test if J2SE-5.0 property set -->
        <condition property="skip.test">
            <not>
                <isset property="J2SE-5.0"/>
            </not>
        </condition>
        <runTests testPlugin="org.eclipse.equinox.p2.tests.discovery"/>
    </target>

    <target name="search">
        <runTests testPlugin="org.eclipse.search.tests"/>
    </target>

    <target name="pdeds">
        <runTests testPlugin="org.eclipse.pde.ds.tests"/>
    </target>

    <target name="all">
        <antcall target="jdtcompilertool"/>
        <antcall target="jdtcompilerapt"/>
        <antcall target="jdttext"/>
        <antcall target="relEng"/>
        <antcall target="pdeui"/>
        <antcall target="ant"/>
        <antcall target="compare"/>
        <antcall target="coreruntime"/>
        <antcall target="coreresources"/>
        <antcall target="osgi"/>
        <antcall target="coreexpressions"/>
        <antcall target="update"/>
        <antcall target="teamcore"/>
        <antcall target="jdtcoreperf"/>
        <antcall target="jdtcorebuilder"/>
        <antcall target="jdtcorecompiler"/>
        <antcall target="uiperformance"/>
        <antcall target="uieditors"/>
        <antcall target="uinavigator"/>
        <antcall target="uiworkbenchtexteditor"/>
        <antcall target="uircp"/>
        <antcall target="uiviews"/>
        <antcall target="jdtdebug"/>
        <antcall target="jdtui"/>
        <antcall target="jdtuirefactoring"/>
        <antcall target="ltkuirefactoringtests"/>
        <antcall target="ltkcorerefactoringtests"/>
        <antcall target="text"/>
        <antcall target="jface"/>
        <antcall target="jfacedatabinding"/>
        <antcall target="filebuffers"/>
        <antcall target="antui"/>
        <antcall target="swt"/>
        <antcall target="teamcvs"/>
        <antcall target="coretestsnet"/>
        <antcall target="jdtapt"/>
        <antcall target="pdebuild"/>
        <antcall target="jdtaptpluggable"/>
        <antcall target="ua"/>
        <antcall target="uiforms"/>
        <antcall target="pdeapitooling"/>
        <antcall target="equinoxsecurity"/>
        <antcall target="equinoxp2"/>
        <antcall target="equinoxp2ui"/>
        <antcall target="equinoxp2discovery"/>
        <antcall target="search"/>
        <antcall target="pdeds"/>
        <antcall target="jdtcoremodel"/>
        <antcall target="uadoc"/>
        <antcall target="debug"/>
        <antcall target="ui"/>

    </target>
</project>

