<project name="testng" default="all" basedir="..">

	<property file="build.properties" />

	<property name="test14.dir" value="${basedir}/test-14" />
	<property name="test.src.dir" value="${test14.dir}/src" />
	<property name="test.build.dir" value="${test14.dir}/build" />

	<property name="report.dir" value="${test14.dir}/test-output" />
	<property name="junit.report.dir" value="${report.dir}/test-tmp" />
	<property name="testng.report.dir" value="${report.dir}" />

	<target name="all" depends="prepare,compile,run,reports" />

	<path id="compile.cp">
		<pathelement location="${build.jdk14.dir}" />
		<fileset dir="${lib.dir}">
			<include name="junit.jar" />
			<include name="${qdox.jar}" />
			<include name="${beanshell.jar}"/>
			<include name="${concurrent.jar}" />
		</fileset>
	</path>

	<path id="run.cp">
		<path refid="compile.cp" />
		<pathelement location="${java.home}/../lib/tools.jar" />
		<pathelement location="${test.build.dir}" />
	</path>

  <path id="run.cp.14">
    <path refid="compile.cp" />
    <pathelement location="${java14.home}/../lib/tools.jar" />
    <pathelement location="${test.build.dir}" />
  </path>

  <target name="env:info">
		<echo>
BASEDIR          =${basedir}
TEST15.DIR       =${test15.dir}
TEST14.DIR       =${test14.dir}
TEST.SRC.DIR     =${test.src.dir}
TEST.BUILD.DIR   =${test.build.dir}
REPORT.DIR       =${report.dir}
JUNIT.REPORT.DIR =${junit.report.dir}
TESTNG.REPORT.DIR=${testng.report.dir}
		</echo>
  </target>
	
	<!-- ==================================================================== -->
	<!-- Compile                                                              -->
	<!-- ==================================================================== -->
	<target name="compile" depends="prepare">
		<echo message="                                 -- Compiling JDK 1.4 tests --" />

		<javac classpathref="compile.cp" 
				 source="1.4" 
				 debug="true" 
				 srcdir="${test.src.dir}" 
				 destdir="${test.build.dir}" 
				 verbose="false"
		/>
	</target>

	<target name="prepare">
		<tstamp />
		<mkdir dir="${test.build.dir}" />
		<mkdir dir="${junit.report.dir}" />
		<mkdir dir="${testng.report.dir}" />
	</target>

   <!-- ==================================================================== -->
   <!-- Run                                                             -->
   <!-- ==================================================================== -->

	<target name="run" description="Run tests" depends="compile">
		<echo>                                 -- Running JDK 1.4 tests --</echo>
		<echo>                                 -- ${jdk14.testng.jar} --</echo>
   	
		<taskdef name="testng-14" 
						classname="org.testng.TestNGAntTask"
						classpath="${build.jdk14.dir}"/>
  
		<testng-14 classpathref="run.cp" 
 								outputDir="${testng.report.dir}" 
 								sourcedir="${test.src.dir}">
			<xmlfileset dir="${test14.dir}" includes="testng.xml"/>
		</testng-14>
   	

		<!--
		JDK1.4 tests run with JDK5 are available through the test/build.xml

		<echo>                                - Running JDK 1.4 tests (1.4)-</echo>
		<echo>                                - ${jdk15.testng.jar} -</echo>
		
		<taskdef name="testng-15" 
            classname="org.testng.TestNGAntTask"
            classpath="${jdk15.testng.jar}"/>
    
     <testng-15 classpathref="run.cp" target="1.4"
           outputDir="${testng.report.dir}" 
           sourcedir="${test.src.dir}">
      <xmlfileset dir="${test14.dir}" includes="testng.xml"/>
     </testng-15>
   	 -->
     <antcall target="clean.tmp" />
	</target>

  <target name="run:jdk14">
    <java classpathref="run.cp.14" jvmversion="5.0" classname="org.testng.TestNG">
  	  <arg line="-d ${testng.report.dir} -sourcedir ${test.src.dir} test-14/testng.xml" />
  	</java>
  </target>
  	
	<target name="run:single" description="Run 1 property file named with the ant property test" depends="compile">
		<echo message="                            -- testng-run-single --" />
		<taskdef name="testng" 
         classname="org.testng.TestNGAntTask"
         classpath="${jdk15.testng.jar}"/>

		<testng outputdir="${testng.report.dir}" target="1.4"
      		  sourcedir="${test.src.dir}"
      		  classpathref="run.cp">
         <xmlfileset dir="${test14.dir}" includes="testng-single.xml" />
		</testng>
   	
		<antcall target="clean.tmp" />
	</target>

   <!-- ==================================================================== -->
   <!-- Run specific configuration                                           -->
   <!-- ==================================================================== -->
	<target name="run:conf" if="testng.conf" depends="clean:reports,compile" description="Run specified tests">
		<echo message="                                 -- testng-tests-run --" />
		<echo message="using: ${testng.conf}.xml" />

		<testng classpathref="run.cp" 
   			  outputDir="${testng.report.dir}" 
					sourcedir="${test.src.dir}">
			<xmlfileset dir="${test14.dir}" includes="${testng.conf}.xml" />
		</testng>

		<antcall target="clean.tmp" />
	</target>


   <!-- ==================================================================== -->
   <!-- Reports                                                              -->
   <!-- ==================================================================== -->

   <target name="reports">
      <junitreport todir="${junit.report.dir}">
         <fileset dir="${testng.report.dir}">
            <include name="*.xml" />
         	<exclude name="testng-failed.xml"/>
         </fileset>
         <report format="noframes" todir="${junit.report.dir}" />
      </junitreport>
   </target>

   <target name="clean.tmp">
      <delete dir="${basedir}/test-output-tests" />
   </target>

   <target name="clean:reports">
      <delete dir="${report.dir}" />
      <delete dir="${junit.report.dir}" />
   </target>

	<target name="clean" depends="clean.tmp,clean:reports">
		<echo message="                                 -- test clean --"/>
		<delete dir="${test.build.dir}" />
	</target>

</project>
