<!-- -*- Mode: SGML; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- --> <!-- --> <!-- This file is part of the compiler and core tools for the AspectJ(tm) --> <!-- programming language; see http://aspectj.org --> <!-- --> <!-- The contents of this file are subject to the Mozilla Public License --> <!-- Version 1.1 (the "License"); you may not use this file except in --> <!-- compliance with the License. You may obtain a copy of the License at --> <!-- either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/. --> <!-- --> <!-- Software distributed under the License is distributed on an "AS IS" basis, --> <!-- WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License --> <!-- for the specific language governing rights and limitations under the --> <!-- License. --> <!-- --> <!-- The Original Code is AspectJ. --> <!-- --> <!-- The Initial Developer of the Original Code is Xerox Corporation. Portions --> <!-- created by Xerox Corporation are Copyright (C) 2002 Xerox Corporation. --> <!-- All Rights Reserved. --> <!-- ============================================================================== --> <!-- This assumes a complete pre-built eclipse workspace --> <!-- ============================================================================== --> <project name="junitModules" default="test-all" basedir="."> <property name="project.name" value="junitModules"/> <target name="init"> <property name="haltOnTestFailure" value="false"/> <property name="modules.dir" location="${basedir}/.."/> <property name="tests.module.dir" location="${modules.dir}/tests"/> <property name="aspectj.modules.lib.dir" location="${modules.dir}/lib"/> <property name="junitModules.output.dir" location="${tests.module.dir}/bin/junitXmlOutput" /> <mkdir dir="${junitModules.output.dir}"/> </target> <target name="clean" depends="init"> <delete dir="${junitModules.output.dir}"/> </target> <target name="jdepend" depends="init" description="run jdepend"> <jdepend format="xml"> <sourcespath> <pathelement location="${tests.module.dir}/../testing/src" /> </sourcespath> <classpath> <pathelement location="${tests.module.dir}/../bin" /> </classpath> </jdepend> </target> <target name="redirect-test-all" depends="init" description="run from another Ant process to redirect output"> <antcall target="clean"/> <mkdir dir="${junitModules.output.dir}"/> <ant dir="${basedir}" antfile="junitModules.xml" target="run-test-all" inheritAll="false" output="${junitModules.output.dir}/output.txt"/> <echo message="View log in ${junitModules.output.dir}/output.txt"/> <property name="fileUrl" location="${junitModules.output.dir}/html/index.html"/> <echo message="View results in file:${fileUrl}"/> </target> <target name="test-all" depends="init" description="run all module tests (except IDE integrations)"> <!-- not running bridgeImpl, compiler, netbeans, jbuilder tests --> <mkdir dir="${junitModules.output.dir}"/> <delete dir="${junitModules.output.dir}"/> <mkdir dir="${junitModules.output.dir}"/> <antcall target="run-module-junit-tests"> <param name="moduleName" value="ajbrowser"/> </antcall> <antcall target="run-module-junit-tests"> <param name="moduleName" value="ajde"/> </antcall> <antcall target="run-module-junit-tests"> <param name="moduleName" value="asm"/> </antcall> <antcall target="run-module-junit-tests"> <param name="moduleName" value="weaver"/> </antcall> <antcall target="run-module-junit-tests"> <param name="moduleName" value="bridge"/> </antcall> <antcall target="run-module-junit-tests"> <param name="moduleName" value="build"/> </antcall> <antcall target="run-module-junit-tests"> <param name="moduleName" value="org.aspectj.ajdt.core"/> </antcall> <!-- no JUnit testsrc in org.eclipse.jdt.core --> <antcall target="run-module-junit-tests"> <param name="moduleName" value="testing"/> </antcall> <antcall target="run-module-junit-tests"> <param name="moduleName" value="runtime"/> </antcall> <antcall target="run-module-junit-tests"> <param name="moduleName" value="taskdefs"/> </antcall> <antcall target="run-module-junit-tests"> <param name="moduleName" value="testing"/> </antcall> <antcall target="run-module-junit-tests"> <param name="moduleName" value="testing-client"/> </antcall> <antcall target="run-module-junit-tests"> <param name="moduleName" value="testing-drivers"/> </antcall> <antcall target="run-module-junit-tests"> <param name="moduleName" value="testing-util"/> </antcall> <antcall target="run-module-junit-tests"> <param name="moduleName" value="util"/> </antcall> <antcall target="report-tests"/> </target> <target name="init-taskdefs" depends="init" description="define junit taskdefs" > <property name="aj.taskdef.package" value="org.aspectj.internal.tools.ant.taskdefs"/> <taskdef name="junit" classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"> <classpath> <pathelement location="${aspectj.modules.lib.dir}/ant/xlib/optional.jar" /> <pathelement location="${aspectj.modules.lib.dir}/junit/junit.jar" /> </classpath> </taskdef> <taskdef name="junitreport" classname="org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator"> <classpath> <pathelement location="${aspectj.modules.lib.dir}/ant/xlib/optional.jar" /> <pathelement location="${aspectj.modules.lib.dir}/junit/junit.jar" /> </classpath> </taskdef> </target> <target name="run-module-junit-tests" depends="init-taskdefs" description="run all junit tests for a module"> <mkdir dir="${junitModules.output.dir}/${moduleName}"/> <!-- fork to load classes, include AntRuntime to get taskdef classes junit.jar --> <echo message="Starting ${moduleName} tests..."/> <junit fork="on" includeAntRuntime="on" dir="${modules.dir}/${moduleName}" printsummary="yes" haltonfailure="${haltOnTestFailure}" > <classpath> <pathelement location="${modules.dir}/ajde/bin" /> <pathelement location="${modules.dir}/ajbrowser/bin" /> <pathelement location="${modules.dir}/asm/bin" /> <pathelement location="${modules.dir}/bridge/bin" /> <pathelement location="${modules.dir}/build/bin" /> <pathelement location="${modules.dir}/org.aspectj.ajdt.core/bin" /> <pathelement location="${modules.dir}/org.eclipse.jdt.core/bin" /> <pathelement location="${modules.dir}/runtime/bin" /> <pathelement location="${modules.dir}/taskdefs/bin" /> <pathelement location="${modules.dir}/testing/bin" /> <pathelement location="${modules.dir}/testing-client/bin" /> <pathelement location="${modules.dir}/testing-drivers/bin" /> <pathelement location="${modules.dir}/testing-util/bin" /> <pathelement location="${modules.dir}/util/bin" /> <pathelement location="${modules.dir}/weaver/bin" /> <pathelement location="${aspectj.modules.lib.dir}/eclipse2.0/jdtDepends.jar" /> <pathelement location="${aspectj.modules.lib.dir}/bcel/bcel.jar" /> <pathelement location="${aspectj.modules.lib.dir}/jdiff/jdiff.jar" /> <pathelement location="${aspectj.modules.lib.dir}/commons/commons.jar" /> <pathelement location="${aspectj.modules.lib.dir}/ant/lib/ant.jar" /> <pathelement location="${aspectj.modules.lib.dir}/ant/lib/xml-apis.jar" /> <pathelement location="${aspectj.modules.lib.dir}/ant/lib/xercesImpl.jar" /> <pathelement location="${aspectj.modules.lib.dir}/test/aspectjrt.jar" /> </classpath> <formatter type="xml"/> <batchtest todir="${junitModules.output.dir}/${moduleName}"> <formatter type="xml"/> <fileset dir="${modules.dir}/${moduleName}/testsrc"> <include name="*ModuleTests.java" /> </fileset> </batchtest> </junit> </target> <target name="report-tests" depends="init-taskdefs"> <mkdir dir="${junitModules.output.dir}/html"/> <junitreport todir="${junitModules.output.dir}/html" tofile="results.html"> <fileset dir="${junitModules.output.dir}/"> <include name="**/TEST-*.xml"/> </fileset> <report format="frames" todir="${junitModules.output.dir}/html"/> </junitreport> <property name="fileUrl" location="${junitModules.output.dir}/html/index.html"/> <echo message="View results in file:${fileUrl}"/> </target> </project>