<?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"/>
    <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="org.eclipse.swt.tests.junit.AllNonBrowserTests"/>
      <!-- workaround for https://bugs.eclipse.org/502410 : -->
      <property name="vmargs" value="-Dorg.eclipse.swt.internal.gtk.disablePrinting"/>
    </ant>
  </target>
	
  <!-- This target defines the browser tests. -->
  <target name="browser-suite" unless="performance">
    <property name="data" value="${eclipse-home}/swt_sniff_folder"/>
    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="timeout" value="900000"/>
      <property name="data-dir" value="${data}"/>
      <property name="plugin-name" value="${plugin-name}"/>
      <property name="classname" value="org.eclipse.swt.tests.junit.AllBrowserTests"/>
    </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,browser-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>
