<?xml version="1.0" encoding="UTF-8"?>

<project
    name="testsuite"
    default="run"
    basedir=".">
    
    <!-- The following properties should be passed into this script -->
    <!-- ${eclipse-home}   -->
    <!-- ${buildDirectory}  -->
    <!-- ${buildLabel}        -->

    <!-- should be little need to change what's above  -->
    <property
        name="plugin-name"
        value="org.eclipse.wst.jsdt.ui.tests" />
    <property
        name="classname"
        value="org.eclipse.wst.jsdt.ui.tests.JSDTUITests" />
    <property
        name="testType"
        value="ui-test" />

    <!-- should be little need to change what's below -->

    <echo message="basedir: ${basedir}" />
    <echo message="eclipse-home: ${eclipse-home}" />
    <echo message="buildDirectory: ${buildDirectory}" />
    <echo message="plugin-name: ${plugin-name}" />
    <echo message="classname: ${classname}" />
    <echo message="testType ${testType}" />


    <property
        name="library-file"
        value="${eclipse-home}/plugins/org.eclipse.test_3.1.0/library.xml" />
    <property
        name="workspace"
        value="${eclipse-home}/junitworkspaces/${plugin-name}" />
        
    <!-- This target holds all initialization code that needs to be done for -->
    <!-- all tests that are to be run. Initialization for individual tests -->
    <!-- should be done within the body of the suite target. -->
    <target name="init">
        <tstamp />
        <delete>
            <fileset
                dir="${eclipse-home}"
                includes="${plugin-name}.*xml" />
        </delete>
        
            <!-- 
         make the workspace directory, in case path doesn't exist yet
         but delete to make sure fresh contents, if it does exist
        -->
        <delete
            dir="${workspace}"
            quiet="true" />
        <mkdir
            dir="${workspace}" />
    </target>

    <!-- This target defines the tests that need to be run. -->
    <target name="suite">

        <ant
            target="${testType}"
            antfile="${library-file}"
            dir="${eclipse-home}">
            <property
                name="data-dir"
                value="${workspace}" />
            <property
                name="plugin-name"
                value="${plugin-name}" />
            <property
                name="classname"
                value="${classname}" />
            <property
                name="plugin-path"
                value="${eclipse-home}/plugins/${plugin-name}" />
        </ant>

        <copy
            failonerror="false"
            file="${workspace}/.metadata/.log"
            tofile="${buildDirectory}/${buildLabel}/testResults/consolelogs/${plugin-name}.consolelog.txt" />

    </target>

    <!-- This target holds code to cleanup the testing environment after -->
    <!-- after all of the tests have been run. You can use this target to -->
    <!-- delete temporary files that have been created. -->
    <target name="cleanup">
        <!-- usually no need to delete workspace until next run, and leaving it allows inspection -->
        <!-- <delete dir="${workspace}" quiet="true" /> -->
    </target>

    <!-- This target runs the test suite. Any actions that need to happen -->
    <!-- after all the tests have been run should go here. -->
    <target
        name="run"
        depends="init,suite,cleanup">
        <ant
            target="collect"
            antfile="${library-file}"
            dir="${eclipse-home}">
            <property
                name="includes"
                value="${plugin-name}.*xml" />
            <property
                name="output-file"
                value="${plugin-name}.xml" />
        </ant>
    </target>

</project>