<?xml version="1.0"?>
<project name="RelEng 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="org.eclipse.releng.tests" value="org.eclipse.releng.tests_3.1.0" />
  
  <!-- 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/>
  	<condition property="tar.gz">
  		<contains string="${runtimeArchive}" substring=".tar.gz" />
  	</condition>
  	<condition property="location" value="/builds/t">
  		<equals arg1="${os}" arg2="win32" />
  	</condition>
  	<property name="location" value="${basedir}/releng"/>
  	<property name="locationcompare" value="${basedir}/relengcompare"/>  	  	
  </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">
    <delete dir="${location}" quiet="true"/>
  	<delete dir="${locationcompare}"/>  	
  </target>

<!--if file is a tar.gz file and not a zip, extract the SDK on which to execute chkpii before starting tests-->
    <target name="setup" if="tar.gz"> 	
	<property name="archiveDir" value="${eclipse-home}/../.."/>
	<delete dir="${location}"/>
	<mkdir dir="${location}"/>
	<exec dir="${location}" executable="tar">
		<arg line="-xzf ${archiveDir}/${runtimeArchive}"/>
    </exec>
  	<!-- only run compare test on Linux machine since it is the fastest machine.
  	Also, the compare tool only parses feature.xmls so it only needs to be run on one machine  -->
  	<delete dir="${locationcompare}"/>
  	<mkdir dir="${locationcompare}" />
  	<exec executable="/usr/bin/wget" dir="${locationcompare}" output="${locationcompare}/error.txt" failonerror="false" os="Linux">
  	     <arg line="-q -O  ${locationcompare}/eclipse-SDK-3.2.2-linux-gtk.tar.gz http://fullmoon.ottawa.ibm.com/downloads/drops/R-3.2.2-200702121330/eclipse-SDK-3.2.2-linux-gtk.tar.gz"/>
  	</exec>
    <exec dir="${locationcompare}" executable="tar" failonerror="false" os="Linux">
  	          <arg line="-xzf ${locationcompare}/eclipse-SDK-3.2.2-linux-gtk.tar.gz"/>
    </exec> 
  	<replace file="${basedir}/plugins/${org.eclipse.releng.tests}/compare.properties" token="@new@" value="${location}/eclipse/features"/>
	<replace file="${basedir}/plugins/${org.eclipse.releng.tests}/compare.properties" token="@old@" value="${locationcompare}/eclipse/features"/>	
    <property name="versionOutputDir" value="${locationcompare}/../../../results/versiontool"/>   	
    <mkdir dir="${versionOutputDir}"/>    
    <exec dir="${versionOutputDir}" executable="/bin/touch" failonerror="false" os="Linux">
    	<arg line="results.xml"/>
    </exec> 	
    <property name="versionOutputFile" value="${versionOutputDir}/results.xml"/> 
    <echo message = "locationcompare ${locationcompare} versionOutputDir ${versionOutputDir} versionOutputFile ${versionOutputFile}"/>
   	<replace file="${basedir}/plugins/${org.eclipse.releng.tests}/compare.properties" token="@output@" value="${versionOutputFile}"/>     	    
  </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,BuildTests">
    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
      <property name="includes" value="org*.xml"/>
      <property name="output-file" value="org.eclipse.releng.tests.xml"/>
    </ant>
  </target>

  <target name="BuildTests" depends="init,cleanup,setup">
    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
      <property name="data-dir" value="${location}"/>
      <property name="plugin-name" value="org.eclipse.releng.tests"/>
      <property name="classname" value="org.eclipse.releng.tests.BuildTests"/>
      <property name="plugin-path" value="${eclipse-home}/plugins/${org.eclipse.releng.tests}"/>
      <property name="vmargs" 
      	value="-DRELENGTEST.JAVADOC.URLS=file:///${eclipse-home}/../../org.eclipse.platform.doc.isv.javadoc.txt,file:///${eclipse-home}/../../org.eclipse.jdt.doc.isv.javadoc.txt,file:///${eclipse-home}/../../org.eclipse.jdt.apt.javadoc.txt,file:///${eclipse-home}/../../org.eclipse.pde.doc.user.javadoc.txt"/>
    </ant>
  </target>

 </project>
