<?xml version="1.0"?>

<project name="CVS Automated Tests" default="run" basedir=".">

  <!-- 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="library-file" value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>

  <!-- get the repository.properties which identify the cvs test repository -->
  <property name="team-home" value="${eclipse-home}/plugins/org.eclipse.team.tests.cvs.core_1.9.0"/>
  <property file="${team-home}/repository.properties"/>

  <!-- 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/>
  </target>

  <!-- This target defines the tests that need to be run. -->
  <target name="suite">
    <property name="location" value="${eclipse-home}/cvs_sniff_folder"/>
    <delete dir="${location}" quiet="true"/>

    <!-- Session Test ** CVS Provider ** -->
    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="vmargs" value="-Declipse.cvs.properties=${team-home}/repository.properties"/>
      <property name="data-dir" value="${location}"/>
      <property name="plugin-name" value="org.eclipse.team.tests.cvs.core"/>
      <property name="classname" value="org.eclipse.team.tests.ccvs.core.provider.AllTestsProvider"/>
    </ant>
    
    <!-- Session Test ** CVS Resources ** -->
    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="vmargs" value="-Declipse.cvs.properties=${team-home}/repository.properties"/>
      <property name="data-dir" value="${location}"/>
      <property name="plugin-name" value="org.eclipse.team.tests.cvs.core"/>
      <property name="classname" value="org.eclipse.team.tests.ccvs.core.cvsresources.AllTestsCVSResource"/>
    </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 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="org.eclipse.team.tests.cvs.xml"/>
    </ant>
  </target>

</project>
