<?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, and either Carbon tests or Gtk tests otherwise. -->
    <condition property="class-tests" value="org.eclipse.swt.tests.junit.AllGtkTests">
      <equals arg1="${os}" arg2="linux"/>
    </condition>
    <condition property="class-tests" value="org.eclipse.swt.tests.junit.AllCarbonTests">
      <equals arg1="${os}" arg2="macosx"/>
    </condition>
    <condition property="class-tests" value="org.eclipse.swt.tests.junit.AllTests">
      <equals arg1="${os}" arg2="win32"/>
    </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="core-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="timeout" value="14400000"/>
      <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>
