<?xml version="1.0"?>

<project name="testsuite" default="performance" basedir=".">
  <!-- The property ${eclipse-home} should be passed into this script -->
  <!-- Set a meaningful default value for when it is not. -->
  <property name="eclipse-home" value="${basedir}\..\.."/>

  <!-- sets the properties eclipse-home, and library-file -->
  <property name="plugin-name" value="org.eclipse.ajdt.tests.performance"/>
  <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="${plugin-name}.xml"/>
      <fileset dir="${eclipse-home}" includes="${plugin-name}.*Test*.xml"/>
    </delete>
  </target>

  <!-- This target defines the tests that need to be run. -->
  <target name="suite">
    <property name="session-folder" 
              value="${eclipse-home}/ui_session_sniff_folder"/>
    <delete dir="${session-folder}" quiet="true"/>
    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="data-dir" value="${session-folder}"/>
      <property name="plugin-name" value="${plugin-name}"/>
      <property name="classname" 
                value="org.eclipse.ajdt.test.AllTests"/>
  
    </ant>
    
    <!-- Commented out until source of problem found (not reusing same workspace dir)
    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="data-dir" value="${session-folder}"/>
      <property name="plugin-name" value="${plugin-name}"/>
      <property name="classname"
                value="org.eclipse.ui.tests.api.SessionRestoreTest"/>
    </ant>
    -->

    <!--
    <property name="sniff-folder"
              value="${eclipse-home}/ui_sniff_folder"/>
    <delete dir="${sniff-folder}" quiet="true"/>
    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="data-dir" value="${sniff-folder}"/>
      <property name="plugin-name" value="${plugin-name}"/>
      <property name="classname"
                value="org.eclipse.ui.tests.UiTestSuite"/>

    </ant>
    -->

    <!--
    <property name="jface-sniff-folder"
              value="${eclipse-home}/jface_sniff_folder"/>
    <delete dir="${jface-sniff-folder}" quiet="true"/>
    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="data-dir" value="${jface-sniff-folder}"/>
      <property name="plugin-name" value="${plugin-name}"/>
      <property name="classname"
                value="org.eclipse.jface.tests.viewers.AllTests"/>
    </ant>
    -->
  </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">
  </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>

<!-- This target defines the performance tests that need to be run. -->
<target name="performance-suite">
  <property name="your-performance-folder" value="${eclipse-home}/performance_folder"/>
  <delete dir="${your-performance-folder}" quiet="true"/>
  <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
     <property name="data-dir" value="${your-performance-folder}"/>
     <property name="extraVMargs" value="-Declipse.perf.dbloc=${derby.home} -Declipse.perf.config=${derby.config}"/>
     <property name="plugin-name" value="${plugin-name}"/>
     <property name="classname" value="org.eclipse.ajdt.tests.performance.PerformanceTestSuite"/>
  </ant>
  
  <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
     <property name="data-dir" value="${your-performance-folder}"/>
     <property name="extraVMargs" value="-Declipse.perf.dbloc=${derby.home} -Declipse.perf.config=${derby.config}"/>
     <property name="plugin-name" value="${plugin-name}"/>
     <property name="classname" value="org.eclipse.ajdt.tests.performance.PerformanceTestSuite2"/>
  </ant>
  
  <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
     <property name="data-dir" value="${your-performance-folder}"/>
     <property name="extraVMargs" value="-Declipse.perf.dbloc=${derby.home} -Declipse.perf.config=${derby.config}"/>
     <property name="plugin-name" value="${plugin-name}"/>
     <property name="classname" value="org.eclipse.ajdt.tests.performance.PerformanceTestSuite3"/>
  </ant>
</target>
                    
<!-- This target runs the performance test suite. Any actions that need to happen -->
<!-- after all the tests have been run should go here. -->
<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>

</project>
