<?xml version="1.0"?>

<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.jst.j2ee.tests" />
	<property name="library-file" value="${eclipse-home}/plugins/org.eclipse.test_3.3.0/library.xml" />
	<property name="extraVMargs" value="-Dorg.eclipse.jst.server.jonas.432=${jonas432Dir}" />

	<property name="workspace" value="${basedir}/${plugin-name}" />

	<!-- Read the properties that will enable/disable the different targets below. -->
	<property file="bvt.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 />
		<delete>
			<fileset dir="${eclipse-home}" includes="org*.xml" />
		</delete>
		<delete dir="${workspace}" quiet="true" />
	</target>

	<target name="AutomatedBVTSuite" if="org.eclipse.jst.j2ee.tests.bvt.ALL">
		<ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="data-dir" value="${workspace}" />
			<property name="plugin-name" value="${plugin-name}" />
			<property name="classname" value="org.eclipse.jst.j2ee.tests.bvt.AutomatedBVT" />
			<property name="extraVMargs" value="${extraVMargs}" />
		</ant>
		<antcall target="cleanup"/>
	</target>

	<target name="EnterpriseBVTSuite" if="org.eclipse.jst.j2ee.tests.bvt.EnterpriseBVT" unless="org.eclipse.jst.j2ee.tests.bvt.ALL">
		<ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="data-dir" value="${workspace}" />
			<property name="plugin-name" value="${plugin-name}" />
			<property name="classname" value="org.eclipse.jst.j2ee.tests.bvt.EnterpriseBVT" />
			<property name="extraVMargs" value="${extraVMargs}" />
		</ant>
		<antcall target="cleanup"/>
	</target>

	<target name="WebBVTSuite" if="org.eclipse.jst.j2ee.tests.bvt.WebBVT" unless="org.eclipse.jst.j2ee.tests.bvt.ALL">
		<ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="data-dir" value="${workspace}" />
			<property name="plugin-name" value="${plugin-name}" />
			<property name="classname" value="org.eclipse.jst.j2ee.tests.bvt.WebBVT" />
			<property name="extraVMargs" value="${extraVMargs}" />
		</ant>
		<antcall target="cleanup"/>
	</target>

	<target name="EJBBVTSuite" if="org.eclipse.jst.j2ee.tests.bvt.EJBBVT" unless="org.eclipse.jst.j2ee.tests.bvt.ALL">
		<ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="data-dir" value="${workspace}" />
			<property name="plugin-name" value="${plugin-name}" />
			<property name="classname" value="org.eclipse.jst.j2ee.tests.bvt.EJBBVT" />
			<property name="extraVMargs" value="${extraVMargs}" />
		</ant>
		<antcall target="cleanup"/>
	</target>

	<target name="CoreBVTSuite" if="org.eclipse.jst.j2ee.tests.bvt.CoreInfrastructureBVT" unless="org.eclipse.jst.j2ee.tests.bvt.ALL">
		<ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="data-dir" value="${workspace}" />
			<property name="plugin-name" value="${plugin-name}" />
			<property name="classname" value="org.eclipse.jst.j2ee.tests.bvt.CoreInfrastructureBVT" />
			<property name="extraVMargs" value="${extraVMargs}" />
		</ant>
		<antcall target="cleanup"/>
	</target>

	<target name="ModelProviderBVTSuite" if="org.eclipse.jst.j2ee.tests.bvt.ModelProviderBVT" unless="org.eclipse.jst.j2ee.tests.bvt.ALL">
		<ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="data-dir" value="${workspace}" />
			<property name="plugin-name" value="${plugin-name}" />
			<property name="classname" value="org.eclipse.jst.j2ee.tests.bvt.ModelProviderBVT" />
			<property name="extraVMargs" value="${extraVMargs}" />
		</ant>
		<antcall target="cleanup"/>
	</target>

	<target name="ExtendedModelProviderBVTSuite" if="org.eclipse.jst.j2ee.tests.bvt.ExtendedModelProviderBVT" unless="org.eclipse.jst.j2ee.tests.bvt.ALL">
		<ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="data-dir" value="${workspace}" />
			<property name="plugin-name" value="${plugin-name}" />
			<property name="classname" value="org.eclipse.jst.j2ee.tests.bvt.ExtendedModelProviderBVT" />
			<property name="extraVMargs" value="${extraVMargs}" />
		</ant>
		<antcall target="cleanup"/>
	</target>

	<!-- This target defines the tests that need to be run. -->
	<target name="suite" depends="AutomatedBVTSuite, EnterpriseBVTSuite, WebBVTSuite, EJBBVTSuite, CoreBVTSuite, ModelProviderBVTSuite, ExtendedModelProviderBVTSuite">
	</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">
		<delete dir="${workspace}" quiet="true" />
	</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>

</project>



