| <!-- |
| ! 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> |