<project default="main" basedir=".">


	<!-- 

STEPS:

- Unzip Eclipse runtime bundle from ECLIPSE_BUNDLE_PATH
- Copy features from build/features to eclipse/features
- Copy plugins from build/plugins to eclipse/plugins
- Load and invoke ant for each "test.xml" in the test plugins
- Collect config files
- Delete eclipse runtime

 -->
	<property name="eclipse-home" value="${basedir}/eclipse-runtime" />
	<property name="eclipse.test.home" value="${eclipse-home}" />
	<property name="build.repo" value="${buildHome}/buildRepo" />
	<property name="plugin.path" value="${buildHome}/plugins" />
	<property name="reports.path" value="${buildHome}/tests" />
	
	<property name="test.bundle.path" value="${basedir}/resources/test/eclipse-test-framework.zip" />
	
	<property name="org.eclipse.test" value="3.3.100" />
	<property name="test.home" value="${eclipse-home}/plugins/org.eclipse.test_${org.eclipse.test}" />
	
	
<!--	<property name="vmargs" value="-XstartOnFirstThread" />
-->
	<property name="junit-stylesheet" value="${test.home}/JUNIT.XSL" />
	<property name="library-file" value="${test.home}/library.xml" />

	<property name="os" value="${osgi.os}" />
	<property name="arch" value="${osgi.arch}" />
	<property name="ws" value="${osgi.ws}" />

	<target name="init">
		<mkdir dir="${reports.path}" />

		<!-- Delete old directory just in case -->
		<delete dir="${eclipse.test.home}" />

		<copy todir="${eclipse.test.home}">
			<fileset dir="${eclipse.home}" />
		</copy>

		<unzip src="${test.bundle.path}" dest="${eclipse.test.home}">
			<patternset>
        		<include name="features/**"/>
        		<include name="plugins/**"/>
   			</patternset>
		</unzip>

		<unjar src="${test.home}.jar" dest="${test.home}" />

		<copy todir="${eclipse.test.home}">
			<fileset dir="${build.repo}">
				<include name="features/*stem*" />
				<include name="plugins/*stem*" />
			</fileset>
			<fileset dir="${transformedRepoLocation}">
				<include name="features/**" />
				<include name="plugins/**" />
			</fileset>			
		</copy>

	</target>

	<target name="runTest">
		<echo>Running test for ${plugin}</echo>

		<ant antfile="${plugin.path}/${plugin}/test.xml" dir="${eclipse-home}" />
		<copy file="${eclipse-home}/${plugin}.xml" todir="${reports.path}" />
	</target>


	<target name="main" depends="init">
		<antcall target="runTest">
			<param name="plugin" value="org.eclipse.stem.tests.core" />
		</antcall>
		<antcall target="runTest">
			<param name="plugin" value="org.eclipse.stem.tests.jobs" />
		</antcall>
		<antcall target="runTest">
			<param name="plugin" value="org.eclipse.stem.tests.definitions" />
		</antcall>
		<antcall target="runTest">
			<param name="plugin" value="org.eclipse.stem.tests.diseasemodels" />
		</antcall>
		<antcall target="runTest">
			<param name="plugin" value="org.eclipse.stem.tests.diseasemodels.example" />
		</antcall>
		<antcall target="runTest">
			<param name="plugin" value="org.eclipse.stem.tests.diseasemodels.experimental" />
		</antcall>
		<antcall target="runTest">
			<param name="plugin" value="org.eclipse.stem.tests.diseasemodels.externaldatasource" />
		</antcall>
		<antcall target="runTest">
			<param name="plugin" value="org.eclipse.stem.tests.diseasemodels.forcing" />
		</antcall>
		<antcall target="runTest">
			<param name="plugin" value="org.eclipse.stem.tests.diseasemodels.multipopulation" />
		</antcall>
		<antcall target="runTest">
			<param name="plugin" value="org.eclipse.stem.tests.populationmodels" />
		</antcall>
		<!--<antcall target="runTest">
			<param name="plugin" value="org.eclipse.stem.tests.grapheditor" />
		</antcall>-->
		<antcall target="runTest">
			<param name="plugin" value="org.eclipse.stem.tests.graphgenerators" />
		</antcall>
		<antcall target="runTest">
			<param name="plugin" value="org.eclipse.stem.tests.internal.data" />
		</antcall>
		<antcall target="runTest">
			<param name="plugin" value="org.eclipse.stem.tests.transport" />
		</antcall>
		<antcall target="runTest">
			<param name="plugin" value="org.eclipse.stem.tests.ui" />
		</antcall>
		<antcall target="runTest">
			<param name="plugin" value="org.eclipse.stem.tests.automaticexperiment" />
		</antcall>
	</target>

</project>
