<?xml version="1.0"?>
<!--
    Copyright (c) 2004, 2009 IBM Corporation and others.
    All rights reserved. This program and the accompanying materials
    are made available under the terms of the Eclipse Public License v1.0
    which accompanies this distribution, and is available at
    http://www.eclipse.org/legal/epl-v10.html
    
    Contributors:
        IBM Corporation - initial API and implementation
 -->

<project name="testsuite" default="run" 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.jdt.core.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="org*.xml"/>
    </delete>
  </target>

  <!-- This target defines the tests that need to be run. -->
  <target name="suite">
    <property name="jdt-core-perf-folder" 
              value="${eclipse-home}/jdt-core-perf-folder"/>
    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
   	  <!-- Use a subdir 'data' so that the JCL jars are put in jdt-core-perf-folder and are deleted at the end of the tests. -->
      <property name="data-dir" value="${jdt-core-perf-folder}/data"/>
  	  <property name="vmargs" value="-DstoreMemory=jdtcoreperf_mem_trace,all,dir=${basedir}/../.."/>
      <property name="plugin-name" value="${plugin-name}"/>
      <property name="classname" 
                value="org.eclipse.jdt.core.tests.performance.OneTest"/>
    </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="jdt-core-perf-folder" value="${eclipse-home}/jdt-core-perf-folder"/>
    <delete dir="${jdt-core-perf-folder}" quiet="true"/>
    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
      <!-- Use a subdir 'data' so that the JCL jars are put in jdt-core-perf-folder and are deleted at the end of the tests. -->
      <property name="data-dir" value="${jdt-core-perf-folder}/data"/>
      <property name="plugin-name" value="${plugin-name}"/>
      <property name="classname" value="org.eclipse.jdt.core.tests.performance.AllPerformanceTests"/>
      <property name="timeout" value="12000000" />
    </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>
