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

<!--
    Copyright (c) 2002, 2011 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="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"/>
  <property name="plugin-name" value="org.eclipse.team.tests.cvs.core"/>

  <!-- get the repository.properties which identify the cvs test repository -->
  <property name="org.eclipse.team.tests.cvs.core" value="org.eclipse.team.tests.cvs.core"/>
  <property name="team-home" value="${eclipse-home}/plugins/${org.eclipse.team.tests.cvs.core}"/>
  <property file="${team-home}/repository.properties"/>
  
  <!-- define the number of times each perfomance test shouldbe run to get an average performance -->
  <property name="performance-loop-count" value="5"/>

  <!-- 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 for regression testing. -->
  <target name="suite">
    <property name="location" value="${eclipse-home}/cvs_sniff_folder"/>
    <delete dir="${location}" quiet="true"/>

    <!-- Session Test ** CVS Provider ** -->
    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="vmargs" value="-Declipse.cvs.properties=${team-home}/repository.properties -Declipse.cvs.recordProtocolTraffic=true"/>
      <property name="data-dir" value="${location}"/>
      <property name="plugin-name" value="${plugin-name}"/>
      <property name="classname" value="org.eclipse.team.tests.ccvs.core.AllCoreTests"/>
    </ant>
    
    <!-- Session Test ** CVS Provider ** -->
    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="vmargs" value="-Declipse.cvs.properties=${team-home}/repository.properties -Declipse.cvs.recordProtocolTraffic=true"/>
      <property name="data-dir" value="${location}"/>
      <property name="plugin-name" value="${plugin-name}"/>
      <property name="classname" value="org.eclipse.team.tests.ccvs.core.AllTests"/>
    </ant>

  </target>
  
  <!-- This target defines the performance tests that need to be run. -->
  <target name="performance-suite">
    <property name="cvs-performance-folder" 
              value="${eclipse-home}/cvs_performance_folder"/>
    <delete dir="${cvs-performance-folder}" quiet="true"/>
    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="vmargs" value="-Declipse.cvs.properties=${team-home}/repository.properties -Declipse.cvs.loopCount=20  -Declipse.cvs.recordProtocolTraffic=false"/>
      <property name="data-dir" value="${cvs-performance-folder}"/>
      <property name="plugin-name" value="${plugin-name}"/>
      <property name="classname" 
                value="org.eclipse.team.tests.ccvs.ui.benchmark.SyncTests"/>
    </ant>
    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="vmargs" value="-Declipse.cvs.properties=${team-home}/repository.properties -Declipse.cvs.loopCount=20  -Declipse.cvs.recordProtocolTraffic=false"/>
      <property name="data-dir" value="${cvs-performance-folder}"/>
      <property name="plugin-name" value="${plugin-name}"/>
      <property name="classname" 
                value="org.eclipse.team.tests.ccvs.ui.benchmark.WorkflowTests"/>
    </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="${plugin-name}.xml"/>
    </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>
