<?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.wtp.releng.tests" />
    <property name="classname"
              value="org.eclipse.wtp.releng.tests.TestBuild" />
    <property name="testType" value="core-test" />

     <!-- if not otherwise defined, try the workbench value -->
	<property name="eclipse-home" value="${eclipse.home}" />
	

    <!-- 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="buildLabel: ${buildLabel}" />
    <echo message="plugin-name: ${plugin-name}" />
    <echo message="classname: ${classname}" />
    <echo message="testType ${testType}" />
    <echo message="buildId ${buildId}" />


    <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 directory, in case path doesn't exist yet -->
        <mkdir dir="${workspace}" />
        <!--  but delete to make sure fresh contents-->
        <delete dir="${workspace}" quiet="true" />

    </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="vmargs"
                      value="-DbuildDirectory='${buildDirectory}' -DbuildLabel='${buildLabel}'" />
        </ant>

        <copy failonerror="false"
              file="${workspace}/.metadata/.log"
              tofile="${buildDirectory}/${buildLabel}/testResults/consolelogs/${plugin-name}.consolelog.txt" />

        <!-- copy our particular xsl files to web directory for prosperity-->
        <copy todir="${buildDirectory}/${buildLabel}/"
              flatten="true">
            <fileset dir="${eclipse-home}/plugins/${testPlugin}"
                     includes="*.xsl" />
        </copy>
		<!-- and use them to create basic display -->
        <xslt basedir="${buildDirectory}/${buildLabel}/"
              includes="versioningReport_*"
              destdir="${buildDirectory}/${buildLabel}/"
              style="versioningReportToHTML.xsl"
              force="true" />
        
        <echo file="${buildDirectory}/${buildLabel}/versioningReportName.php">
            <![CDATA[<?php $versionReportFilename="versioningReport_${buildLabel}" ?>]]>
        </echo>
        
        
        
        
        
    </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>