<!--
! ASM: a very small and fast Java bytecode manipulation framework
! Copyright (c) 2000-2005 INRIA, France Telecom
! All rights reserved.
!
! Redistribution and use in source and binary forms, with or without
! modification, are permitted provided that the following conditions
! are met:
! 1. Redistributions of source code must retain the above copyright
! notice, this list of conditions and the following disclaimer.
! 2. Redistributions in binary form must reproduce the above copyright
! notice, this list of conditions and the following disclaimer in the
! documentation and/or other materials provided with the distribution.
! 3. Neither the name of the copyright holders nor the names of its
! contributors may be used to endorse or promote products derived from
! this software without specific prior written permission.
!
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
! AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
! IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
! ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
! LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
! THE POSSIBILITY OF SUCH DAMAGE.
-->
<project name="test" default="test">
<!-- ==================================== -->
<!-- ======== PROPERTY DEFINITION ======= -->
<!-- ==================================== -->
<property name="test.conform" value="${test}/conform"/>
<property name="test.deviance" value="${test}/deviance"/>
<property name="test.thread" value="${test}/thread"/>
<property name="test.stress" value="${test}/stress"/>
<property name="test.perf" value="${test}/perf"/>
<target name="properties">
<condition property="asm.test" value="${java.home}/lib/rt.jar,test/conform/cases">
<not><isset property="asm.test"/></not>
</condition>
<condition property="asm.test.class" value="">
<not><isset property="asm.test.class"/></not>
</condition>
<condition property="java5">
<available classname="java.lang.annotation.Annotation"/>
</condition>
<condition property="test.conform.exist">
<available file="${test.conform}"/>
</condition>
<condition property="test.deviance.exist">
<available file="${test.deviance}"/>
</condition>
<condition property="test.thread.exist">
<available file="${test.thread}"/>
</condition>
<condition property="test.stress.exist">
<available file="${test.stress}"/>
</condition>
<condition property="test.perf.exist">
<available file="${test.perf}"/>
</condition>
<condition property="test.all">
<and>
<not><isset property="test.type"/></not>
<not><isset property="test.group"/></not>
<not><isset property="test.name"/></not>
</and>
</condition>
<condition property="test.paths.configured">
<and>
<isset property="bcel.path"/>
<isset property="serp.path"/>
<isset property="javassist.path"/>
<isset property="janino.path"/>
</and>
</condition>
</target>
<!-- ================================== -->
<!-- ======== INITIALIZATION ======= -->
<!-- ================================== -->
<target name="check" unless="test.paths.configured">
<echo message="The 'build.properties' file must be configured"/>
<fail/>
</target>
<target name="init" depends="properties,check">
<mkdir dir="${out.test}"/>
<mkdir dir="${out.test}/reports"/>
<path id="test.classpath">
<pathelement location="${classes}"/>
<pathelement location="${out.test}"/>
<pathelement path="${bcel.path}"/>
<pathelement path="${serp.path}"/>
<pathelement path="${javassist.path}"/>
<pathelement path="${janino.path}"/>
<path refid="cobertura.classpath"/>
</path>
</target>
<!-- ==================================== -->
<!-- =========== COMPILATION ============ -->
<!-- ==================================== -->
<target name="compile.test.conform" depends="init" if="test.conform.exist">
<javac srcdir="${test.conform}" destdir="${out.test}"
debug="on" debuglevel="lines,vars,source">
<classpath refid="test.classpath"/>
<include name="**/*.java"/>
<exclude name="annotations/**/*.java" unless="java5"/>
<exclude name="**/AnnotationTest.java" unless="java5"/>
</javac>
<copy todir="${out.test}">
<fileset dir="${test.conform}">
<include name="**/*.txt"/>
<include name="**/*.data"/>
</fileset>
</copy>
</target>
<target name="compile.test.deviance" depends="init" if="test.deviance.exist">
<javac srcdir="${test.deviance}" destdir="${out.test}" debug="on" source="1.3" target="1.2">
<classpath refid="test.classpath"/>
<include name="**/*.java"/>
</javac>
</target>
<target name="compile.test.thread" depends="init" if="test.thread.exist">
<javac srcdir="${test.thread}" destdir="${out.test}" debug="on" source="1.3" target="1.2">
<classpath refid="test.classpath"/>
<include name="**/*.java"/>
</javac>
</target>
<target name="compile.test.stress" depends="init" if="test.stress.exist">
<javac srcdir="${test.stress}" destdir="${out.test}" debug="on" source="1.3" target="1.2">
<classpath refid="test.classpath"/>
<include name="**/*.java"/>
</javac>
</target>
<target name="compile.test.perf" depends="init" if="test.perf.exist">
<javac srcdir="${test.perf}" destdir="${out.test}" debug="on" source="1.3" target="1.2">
<classpath refid="test.classpath"/>
<include name="**/*.java"/>
<exclude name="**/xml/*.java"/>
</javac>
</target>
<target name="compile" depends="compile.test.conform,compile.test.deviance,compile.test.thread,compile.test.stress,compile.test.perf"/>
<!-- ============================= -->
<!-- =========== TEST ============ -->
<!-- ============================= -->
<target name="testAll" depends="compile" if="test.all">
<multipleAnt dir="${test.conform}" inheritRefs="true"/>
<!--multipleAnt dir="${test.deviance}" inheritRefs="true"/>
<multipleAnt dir="${test.thread}" inheritRefs="true"/>
<multipleAnt dir="${test.stress}" inheritRefs="true"/-->
<multipleAnt dir="${test.perf}" inheritRefs="true"/>
</target>
<target name="testType" depends="compile" if="test.type">
<multipleAnt dir="${test}/${test.type}" inheritRefs="true"/>
</target>
<target name="testGroup" depends="compile" if="test.group">
<ant antfile="test/${test.group}.xml" inheritRefs="true"/>
</target>
<target name="testName" depends="compile" if="test.name">
<multipleAnt dir="${test.conform}" target="${test.name}" inheritRefs="true"/>
<!--multipleAnt dir="${test.deviance}" target="${test.name}" inheritRefs="true"/>
<multipleAnt dir="${test.thread}" target="${test.name}" inheritRefs="true"/>
<multipleAnt dir="${test.stress}" target="${test.name}" inheritRefs="true"/-->
<multipleAnt dir="${test.perf}" target="${test.name}" inheritRefs="true"/>
</target>
<target name="test" depends="testAll,testType,testGroup,testName">
<!--junitreport todir="${out.test}/reports">
<fileset dir="${out.test}/reports">
<include name="TEST-*.xml"/>
</fileset>
<report todir="${out.test}/reports"/>
</junitreport-->
</target>
</project>