<?xml version="1.0"?>

<project name="testsuite" default="run" basedir=".">
  <!-- This file is intended to be more tightly coupled with the -->
  <!-- org.eclipse.ui plugin, for testing. -->

  <!-- The property ${eclipse-home} should be passed into this script -->

  <!-- sets the properties eclipse-home, and library-file -->
  <property name="eclipse-home" value="${basedir}/../.."/>
  <property name="plugin-name" value="org.eclipse.swt.tests"/>
  <property name="plugin-path" value="${eclipse-home}/plugins/${org.eclipse.swt.tests}"/>
  <property name="library-file" value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>

  <!-- 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="org*.xml"/>
    </delete>
  </target>

  <!-- This target defines the tests that need to be run. -->
  <target name="suite" unless="performance">
    <property name="data" value="${eclipse-home}/swt_sniff_folder"/>
    <delete dir="${location1}" quiet="true"/>
    <!-- Run all SWT tests on Windows. Run only Browser tests otherwise. -->
    <condition property="class-tests" value="org.eclipse.swt.tests.junit.AllBrowserTests">
      <os family="unix"/>
    </condition>
    <condition property="class-tests" value="org.eclipse.swt.tests.junit.AllTests">
      <os family="windows"/>
    </condition>
    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="data-dir" value="${data}"/>
      <property name="plugin-name" value="${plugin-name}"/>
      <property name="classname" value="${class-tests}"/>
    </ant>
  </target>

  <!-- This target holds code to cleanup the testing environment after the tests -->
  <!-- have been run. You can use this to delete temporary files that are created. -->
  <target name="cleanup">
  </target>

  <!--  This target defines the performance tests that need to be run. --> 
  <target name="performance-suite">
    <property name="swt-performance-folder" value="${eclipse-home}/swt_performance_folder" /> 
    <delete dir="${swt-performance-folder}" quiet="true" /> 
    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="data-dir" value="${swt-performance-folder}" /> 
      <property name="plugin-name" value="${plugin-name}" /> 
      <property name="classname" value="org.eclipse.swt.tests.junit.performance.PerformanceTests" /> 
    </ant>
  </target>

  <target name="performance" depends="init,performance-suite,cleanup">
    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
      <property name="includes" value="org*.xml" /> 
      <property name="output-file" value="${plugin-name}.xml" /> 
    </ant>
  </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="org*.xml"/>
      <property name="output-file" value="${plugin-name}.xml"/>
    </ant>
  </target>
  
</project>
