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

<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.jdt.ui.tests.refactoring"/>
	<property name="library-file"
            value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>

	<!-- 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. -->
	<target name="suite">
		<property name="refactoring-folder" 
              value="${eclipse-home}/refactoring_folder"/>
		<delete dir="${refactoring-folder}" quiet="true"/>
		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="data-dir" value="${refactoring-folder}"/>
			<property name="plugin-name" value="${plugin-name}"/>
			<property name="classname" 
                value="org.eclipse.jdt.ui.tests.refactoring.all.AllAllRefactoringTests"/>
		</ant>
	</target>

	<!-- performance test target -->
	<target name="performance-suite">
		<property name="jdt-ui-refactoring-performance-folder" value="${eclipse-home}/jdt_ui_refactoring_performance_folder"/>
		<property name="data-dir" value="${jdt-ui-refactoring-performance-folder}"/>
		<property name="plugin-name" value="${plugin-name}"/>

		<delete dir="${jdt-ui-refactoring-performance-folder}" quiet="true"/>
		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="classname" value="org.eclipse.jdt.ui.tests.refactoring.reorg.RenamePackagePerfTests1"/>
		</ant>
		<delete dir="${jdt-ui-refactoring-performance-folder}" quiet="true"/>
		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="classname" value="org.eclipse.jdt.ui.tests.refactoring.reorg.RenamePackagePerfTests2"/>
		</ant>

		<delete dir="${jdt-ui-refactoring-performance-folder}" quiet="true"/>
		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="classname" value="org.eclipse.jdt.ui.tests.refactoring.reorg.RenameTypePerfAcceptanceTests"/>
		</ant>
		<delete dir="${jdt-ui-refactoring-performance-folder}" quiet="true"/>
		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="classname" value="org.eclipse.jdt.ui.tests.refactoring.reorg.RenameTypePerfTests1"/>
		</ant>
		<delete dir="${jdt-ui-refactoring-performance-folder}" quiet="true"/>
		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="classname" value="org.eclipse.jdt.ui.tests.refactoring.reorg.RenameTypePerfTests2"/>
		</ant>

		<delete dir="${jdt-ui-refactoring-performance-folder}" quiet="true"/>
		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="classname" value="org.eclipse.jdt.ui.tests.refactoring.reorg.RenameMethodPerfTests1"/>
		</ant>
		<delete dir="${jdt-ui-refactoring-performance-folder}" quiet="true"/>
		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="classname" value="org.eclipse.jdt.ui.tests.refactoring.reorg.RenameMethodPerfTests2"/>
		</ant>

		<delete dir="${jdt-ui-refactoring-performance-folder}" quiet="true"/>
		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="classname" value="org.eclipse.jdt.ui.tests.refactoring.reorg.RenameMethodWithOverloadPerfTests"/>
		</ant>

		<delete dir="${jdt-ui-refactoring-performance-folder}" quiet="true"/>
		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="classname" value="org.eclipse.jdt.ui.tests.refactoring.reorg.MoveCompilationUnitPerfTests1"/>
		</ant>
		<delete dir="${jdt-ui-refactoring-performance-folder}" quiet="true"/>
		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="classname" value="org.eclipse.jdt.ui.tests.refactoring.reorg.MoveCompilationUnitPerfTests2"/>
		</ant>

		<delete dir="${jdt-ui-refactoring-performance-folder}" quiet="true"/>
		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="classname" value="org.eclipse.jdt.ui.tests.refactoring.reorg.MoveStaticMembersPerfTests1"/>
		</ant>
		<delete dir="${jdt-ui-refactoring-performance-folder}" quiet="true"/>
		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="classname" value="org.eclipse.jdt.ui.tests.refactoring.reorg.MoveStaticMembersPerfTests2"/>
		</ant>

		<delete dir="${jdt-ui-refactoring-performance-folder}" quiet="true" />
		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="classname" value="org.eclipse.jdt.ui.tests.refactoring.type.ExtractInterfacePerfAcceptanceTests" />
		</ant>

		<delete dir="${jdt-ui-refactoring-performance-folder}" quiet="true" />
		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="classname" value="org.eclipse.jdt.ui.tests.refactoring.type.ExtractInterfaceHeapAcceptanceTests" />
		</ant>

		<delete dir="${jdt-ui-refactoring-performance-folder}" quiet="true" />
		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
			<property name="classname" value="org.eclipse.jdt.ui.tests.refactoring.reorg.IntroduceIndirectionPerfAcceptanceTests" />
		</ant>
	</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">
	</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>
