<?xml version="1.0" ?>

<!--

  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

-->

<project name="compiler.tests" default="main" basedir=".">

    <pathconvert property="compiler.tests" dirsep="/">
        <path location="${basedir}"/>
    </pathconvert>
    

    <property environment="env"/>
	<property file="unittest.properties" />
	<property name="test.timeout" value="3000000" />
	<property name="maxmem" value="512" />
	
	<condition property="sdk" value="${FLEX_HOME}" else="${env.FLEX_HOME}">
	    <isset property="FLEX_HOME" />
	</condition>
	
	<condition property="fpdbg" value="${FLASHPLAYER_DEBUGGER}" else="${env.FLASHPLAYER_DEBUGGER}">
	    <isset property="FLASHPLAYER_DEBUGGER" />
	</condition>
	
	<condition property="playerglobal.version" value="${env.PLAYERGLOBAL_VERSION}">
	    <isset property="env.PLAYERGLOBAL_VERSION" />
	</condition>
	<property name="playerglobal.version" value="11.1" />
	
    <property name="compiler" value="${compiler.tests}/../.."/>
    <property name="falcon" value="${compiler}"/>

    <path id="lib.path">
        <fileset dir="${falcon}/lib" includes="falcon-flexTasks.jar"/>
    </path>
    
    <target name="download" description="Downloads third-party JARs">
        <ant antfile="${compiler.tests}/downloads.xml" dir="${compiler.tests}"/>
    	<delete dir="${compiler.tests}/in"/>
    </target>

    <target name="eclipse">
        <copy file="${fpdbg}" tofile="${compiler.tests}/temp/FlashPlayer.exe"/>
    </target>
    
    <target name="jar.tests">
        <java jar="${falcon}/lib/falcon-mxmlc.jar" fork="true"/>
        <java jar="${falcon}/lib/falcon-compc.jar" fork="true"/>
        <java jar="${falcon}/lib/falcon-asc.jar" fork="true"/>
        <java jar="${falcon}/lib/falcon-optimizer.jar" fork="true"/>
        <java jar="${falcon}/lib/falcon-swfdump.jar" fork="true"/>
    </target>
    
    <!-- tests used to be divided up like this
 
    <target name="compile.unit.tests">
    	<delete dir="${compiler}/target/test-classes"/>
        <mkdir dir="${compiler}/target/test-classes"/>
        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${compiler}/target/test-classes" includeAntRuntime="true">
        	<src path="${compiler.tests}/src/java"/>
            <compilerarg value="-Xlint:all,-path"/>
            <classpath>
                <fileset dir="${compiler}/lib" includes="**/*.jar"/>
                <pathelement location="${falcon}/lib/compiler.jar"/>
            </classpath>
        </javac>
    </target>

    <target name="unit.tests" depends="download, compile.unit.tests">
        <mkdir dir="${compiler}/target/junit-reports"/>
        <mkdir dir="${compiler}/target/junit-temp"/>
        <junit dir="${compiler.tests}"
               fork="yes" forkMode="perBatch" maxmemory="${maxmem}m" timeout="${test.timeout}"
               printsummary="true" showoutput="true"
               haltonerror="true" haltonfailure="true"
               failureproperty="tests.unit.failed">
            <classpath>
                <pathelement location="${compiler}/target/test-classes"/>
                <fileset dir="${compiler}/lib" includes="**/*.jar"/>
                <pathelement location="${falcon}/lib/compiler.jar"/>
            </classpath>
            <batchtest todir="${compiler}/target/junit-reports">
                <fileset dir="${compiler}/target/test-classes">
                    <include name="**/*Tests.class"/>
                    <exclude name="mxml/tags/**"/>
                    <exclude name="properties/**"/>
                    <exclude name="**/MXMLDesignLayerNodeTests.class"/>
                    <exclude name="**/MXMLHTTPServiceNodeTests.class"/>
                    <exclude name="**/MXMLModelNodeTests.class"/>
                    <exclude name="**/MXMLRemoteObjectNodeTests.class"/>
                    <exclude name="**/MXMLStateNodeTests.class"/>
                    <exclude name="**/MXMLWebServiceNodeTests.class"/>
                </fileset>
            </batchtest>
            <formatter type="xml"/>
        </junit>
    </target>
	
    <target name="unit.tests.sdk" depends="download, compile.unit.tests">
        <mkdir dir="${compiler}/target/junit-reports"/>
        <mkdir dir="${compiler}/target/junit-temp"/>
        <junit dir="${compiler.tests}"
            fork="yes" forkMode="perBatch" maxmemory="${maxmem}m" timeout="${test.timeout}"
            printsummary="true" showoutput="true"
            haltonerror="true" haltonfailure="true"
            failureproperty="tests.unit.failed">
            <classpath>
                <pathelement location="${compiler}/target/test-classes"/>
                <fileset dir="${compiler}/lib" includes="**/*.jar"/>
                <pathelement location="${falcon}/lib/compiler.jar"/>
            </classpath>
            <batchtest todir="${compiler}/target/junit-reports">
                <fileset dir="${compiler}/target/test-classes">
                    <include name="**/MXMLDesignLayerNodeTests.class"/>
                    <include name="**/MXMLHTTPServiceNodeTests.class"/>
                    <include name="**/MXMLModelNodeTests.class"/>
                    <include name="**/MXMLRemoteObjectNodeTests.class"/>
                    <include name="**/MXMLStateNodeTests.class"/>
                    <include name="**/MXMLWebServiceNodeTests.class"/>
                </fileset>
            </batchtest>
            <formatter type="xml"/>
        </junit>
    </target>
    
    <target name="compile.feature.tests">
    	<delete dir="${compiler}/target/test-classes"/>
        <mkdir dir="${compiler}/target/test-classes"/>
        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${compiler}/target/classes" includeAntRuntime="true">
            <src path="${compiler.tests}/feature-tests"/>
        	<src path="${compiler.tests}/src"/>
            <compilerarg value="-Xlint:all,-path"/>
            <classpath>
                <fileset dir="${compiler}/lib" includes="**/*.jar"/>
                <fileset dir="${compiler.tests}/lib" includes="**/*.jar"/>
                <pathelement location="${falcon}/lib/compiler.jar"/>
            </classpath>
        </javac>
    </target>

    <target name="feature.tests" depends="download, compile.feature.tests">
        <mkdir dir="${compiler.tests}/results"/>
        <mkdir dir="${compiler.tests}/temp"/>
        <junit dir="${compiler.tests}"
               fork="yes" forkMode="perBatch" maxmemory="${maxmem}m" timeout="${test.timeout}"
               printsummary="true" showoutput="true"
               haltonerror="true" haltonfailure="true"
               failureproperty="tests.unit.failed">
            <classpath>
                <pathelement location="${compiler.tests}/classes"/>
                <fileset dir="${compiler}/lib" includes="**/*.jar"/>
                <fileset dir="${compiler.tests}/lib" includes="**/*.jar"/>
                <pathelement location="${falcon}/lib/compiler.jar"/>
            </classpath>
            <batchtest todir="${compiler.tests}/results">
                <fileset dir="${compiler.tests}/classes">
                    <include name="**/*Tests.class"/>
                    <exclude name="**/MXMLComponentTagTests.class"/>
                    <exclude name="**/MXMLHTTPServiceTagTests.class"/>
                    <exclude name="**/MXMLModelTagTests.class"/>
                    <exclude name="**/MXMLRemoteObjectTagTests.class"/>
                    <exclude name="**/MXMLWebServiceTagTests.class"/>
                    <exclude name="**/MXMLProperty*.class"/>
                </fileset>
            </batchtest>
            <formatter type="xml"/>
        </junit>
    </target>
	
    <target name="feature.tests.sdk" depends="download, compile.feature.tests">
        <mkdir dir="${compiler.tests}/results"/>
        <mkdir dir="${compiler.tests}/temp"/>
        <junit dir="${compiler.tests}"
            fork="yes" forkMode="perBatch" maxmemory="${maxmem}m" timeout="${test.timeout}"
            printsummary="true" showoutput="true"
            haltonerror="true" haltonfailure="true"
            failureproperty="tests.unit.failed">
            <classpath>
                <pathelement location="${compiler.tests}/classes"/>
                <fileset dir="${compiler}/lib" includes="**/*.jar"/>
                <fileset dir="${compiler.tests}/lib" includes="**/*.jar"/>
                <pathelement location="${falcon}/lib/compiler.jar"/>
            </classpath>
            <batchtest todir="${compiler.tests}/results">
                <fileset dir="${compiler.tests}/classes">
                    <include name="**/MXMLComponentTagTests.class"/>
                    <include name="**/MXMLHTTPServiceTagTests.class"/>
                    <include name="**/MXMLModelTagTests.class"/>
                    <include name="**/MXMLRemoteObjectTagTests.class"/>
                    <include name="**/MXMLWebServiceTagTests.class"/>
                    <include name="**/MXMLProperty*.class"/>
                    <exclude name="**/MXMLPropertyTestsBase.class"/>
                </fileset>
            </batchtest>
            <formatter type="xml"/>
        </junit>
    </target>
    
    <target name="compile.functional.tests">
    	<delete dir="${compiler.tests}/classes" />
        <mkdir dir="${compiler.tests}/classes"/>
        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${compiler.tests}/classes" includeAntRuntime="true">
        	<src path="${compiler.tests}/src"/>
        	<src path="${compiler.tests}/functional-tests"/>
            <compilerarg value="-Xlint:all,-path"/>
            <classpath>
                <fileset dir="${compiler}/lib" includes="**/*.jar"/>
                <fileset dir="${compiler.tests}/lib" includes="**/*.jar"/>
                <pathelement location="${falcon}/lib/compiler.jar"/>
            </classpath>
        </javac>
    </target>
	
    <target name="functional.tests" depends="download, compile.functional.tests">
        <mkdir dir="${compiler.tests}/results"/>
        <mkdir dir="${compiler.tests}/temp"/>
        <junit dir="${compiler.tests}"
               fork="yes" forkMode="perBatch" maxmemory="${maxmem}m" timeout="${test.timeout}"
               printsummary="true" showoutput="true"
               haltonerror="true" haltonfailure="true"
               failureproperty="tests.functional.failed">
            <classpath>
                <pathelement location="${compiler.tests}/classes"/>
                <fileset dir="${compiler}/lib" includes="**/*.jar"/>
                <fileset dir="${compiler.tests}/lib" includes="**/*.jar"/>
                <pathelement location="${falcon}/lib/compiler.jar"/>
            </classpath>
            <batchtest todir="${compiler.tests}/results">
                <fileset dir="${compiler.tests}/classes">
                    <include name="**/*Tests.class"/>
                </fileset>
            </batchtest>
            <formatter type="xml"/>
        </junit>
    </target>

    end of old test organization -->
    
    <target name="compile.tests">
        <echo>compiler is ${compiler} falcon is ${falcon}</echo>
        <delete dir="${compiler}/target/test-classes"/>
        <mkdir dir="${compiler}/target/test-classes"/>
        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${compiler}/target/test-classes" includeAntRuntime="true">
            <src path="${compiler.tests}/java"/>
            <compilerarg value="-Xlint:all,-path"/>
            <classpath>
                <fileset dir="${compiler}/lib/external" includes="**/*.jar"/>
                <pathelement location="${compiler}/../compiler-build-tools/target/classes"/>
                <pathelement location="${compiler}/../compiler-test-utils/target/classes"/>
                <pathelement location="${falcon}/lib/compiler.jar"/>
            </classpath>
        </javac>
    </target>
    
    <target name="tests" depends="download, compile.tests">
        <mkdir dir="${compiler}/target/junit-reports"/>
        <mkdir dir="${compiler}/target/junit-temp"/>
        <junit dir="${compiler.tests}"
            fork="yes" forkMode="perBatch" maxmemory="${maxmem}m" timeout="${test.timeout}"
            printsummary="true" showoutput="true"
            haltonerror="true" haltonfailure="true"
            failureproperty="tests.unit.failed">
            <classpath>
                <pathelement location="${compiler}/target/test-classes"/>
                <fileset dir="${compiler}/lib/external" includes="**/*.jar"/>
                <pathelement location="${compiler}/../compiler-build-tools/target/classes"/>
                <pathelement location="${compiler}/../compiler-test-utils/target/classes"/>
                <pathelement location="${falcon}/lib/compiler.jar"/>
            </classpath>
            <batchtest todir="${compiler}/target/junit-reports">
                <fileset dir="${compiler}/target/test-classes">
                    <include name="**/*Tests.class"/>
                    <exclude name="f/**"/>
                    <exclude name="mxml/tags/**"/>
                    <exclude name="properties/**"/>
                    <exclude name="**/MXMLComponentTagTests.class"/>
                    <exclude name="**/MXMLHTTPServiceTagTests.class"/>
                    <exclude name="**/MXMLModelTagTests.class"/>
                    <exclude name="**/MXMLRemoteObjectNodeTests.class"/>
                    <exclude name="**/MXMLWebServiceNodeTests.class"/>
                    <exclude name="**/MXMLProperty*.class"/>
                    <exclude name="**/MXMLDesignLayerNodeTests.class"/>
                    <exclude name="**/MXMLHTTPServiceNodeTests.class"/>
                    <exclude name="**/MXMLModelNodeTests.class"/>
                    <exclude name="**/MXMLRemoteObjectTagTests.class"/>
                    <exclude name="**/MXMLStateNodeTests.class"/>
                    <exclude name="**/MXMLVectorNodeTests.class"/>
                    <exclude name="**/MXMLWebServiceTagTests.class"/>
                    
                </fileset>
            </batchtest>
            <formatter type="xml"/>
        </junit>
    </target>
    
    <target name="tests.sdk" depends="download, compile.tests">
        <mkdir dir="${compiler}/target/junit-reports"/>
        <mkdir dir="${compiler}/target/junit-temp"/>
        <junit dir="${compiler.tests}"
            fork="yes" forkMode="perBatch" maxmemory="${maxmem}m" timeout="${test.timeout}"
            printsummary="true" showoutput="true"
            haltonerror="true" haltonfailure="true"
            failureproperty="tests.unit.failed">
            <classpath>
                <pathelement location="${compiler}/target/test-classes"/>
                <fileset dir="${compiler}/lib" includes="**/*.jar"/>
                <pathelement location="${compiler}/../compiler-build-tools/target/classes"/>
                <pathelement location="${compiler}/../compiler-test-utils/target/classes"/>
                <pathelement location="${falcon}/lib/compiler.jar"/>
            </classpath>
            <batchtest todir="${compiler}/target/junit-reports">
                <fileset dir="${compiler}/target/test-classes">
                    <include name="f/**"/>
                    <include name="**/MXMLComponentTagTests.class"/>
                    <include name="**/MXMLHTTPServiceTagTests.class"/>
                    <include name="**/MXMLModelTagTests.class"/>
                    <include name="**/MXMLRemoteObjectTagTests.class"/>
                    <include name="**/MXMLWebServiceTagTests.class"/>
                    <include name="**/MXMLProperty*.class"/>
                    <exclude name="**/MXMLPropertyTestsBase.class"/>
                    <include name="**/MXMLDesignLayerNodeTests.class"/>
                    <include name="**/MXMLHTTPServiceNodeTests.class"/>
                    <include name="**/MXMLModelNodeTests.class"/>
                    <include name="**/MXMLRemoteObjectNodeTests.class"/>
                    <include name="**/MXMLStateNodeTests.class"/>
                    <include name="**/MXMLVectorNodeTests.class"/>
                    <include name="**/MXMLWebServiceNodeTests.class"/>
                    
                </fileset>
            </batchtest>
            <formatter type="xml"/>
        </junit>
    </target>
    
    <!--<target name="main" depends="unit.tests, feature.tests, jar.tests"/>-->
    <!--<target name="sdk.dependent.tests" depends="unit.tests.sdk, feature.tests.sdk, functional.tests" />-->
    <target name="main" depends="jar.tests, tests"/>
    <target name="sdk.dependent.tests" depends="tests.sdk" />
    <target name="all" depends="main, sdk.dependent.tests"/>

    <target name="clean">
        <delete dir="${compiler}/target/junit-reports"/>
        <delete dir="${compiler}/target/junit-temp"/>
    </target>

    <target name="wipe" depends="clean">
        <delete file="${compiler}/lib/external/commons-lang3-3.4.jar"/>
        <delete file="${compiler}/lib/external/commons-compress-1.10.jar"/>
        <delete file="${compiler}/lib/external/junit-4.10.jar"/>
    </target>

</project>
