<?xml version="1.0" encoding="UTF-8"?>

<!--
    Copyright (c) 2002, 2014 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
        Technical University Berlin - adapted for Object Teams
 -->

<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.compiler"/>
  <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">
    <!-- Parser tests -->
    <property name="jdt-parser-folder" 
              value="${eclipse-home}/jdt_parser_folder"/>
    <delete dir="${jdt-parser-folder}" quiet="true"/>
    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="data-dir" value="${jdt-parser-folder}"/>
      <property name="plugin-name" value="${plugin-name}"/>
      <property name="classname" 
                value="org.eclipse.jdt.core.tests.compiler.parser.TestAll"/>
    </ant>

    <!-- Compiler regression tests -->
    <property name="jdt-compiler-folder" 
              value="${eclipse-home}/jdt_compiler_folder"/>
    <delete dir="${jdt-compiler-folder}" quiet="true"/>
    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="data-dir" value="${jdt-compiler-folder}"/>
      <property name="plugin-name" value="${plugin-name}"/>
      <property name="classname" 
                value="org.eclipse.jdt.core.tests.compiler.regression.TestAll"/>
    </ant>

	<antcall target="evaluation_tests"/>
  </target>

 <target name="evaluation_tests">
    <!-- Evaluation tests -->
    <property name="jdt-eval-folder" 
              value="${eclipse-home}/jdt_eval_folder"/>
    <delete dir="${jdt-eval-folder}" quiet="true"/>
    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="data-dir" value="${jdt-eval-folder}"/>
      <property name="plugin-name" value="${plugin-name}"/>
      <property name="classname" 
                value="org.eclipse.jdt.core.tests.eval.TestAll"/>
    </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">
	<echo message="OTTest: done running ${plugin-name}"/>
<!-- ObjectTeams: per-plugin collect not needed.
    <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>
