123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289 |
- <!-- -*- 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) 1999, 2000 Xerox Corporation. -->
- <!-- All Rights Reserved. -->
-
- <!-- ============================================================================== -->
- <!-- To do a build, invoke build/bin/ant.[sh|bat] after defining JDKDIR. -->
- <!-- To customize properties, edit local.properties.examples as local.properties. -->
- <!-- ============================================================================== -->
- <!-- todo: non-distribution license?? -->
-
- <!-- This dtd only defines aspectj_initProduct, unlike ../../build.dtd -->
- <!DOCTYPE build SYSTEM "build.dtd">
-
- <!-- This only runs from ../../test-product.xml b/c it uses comparefiles w/o defining it -->
- <project name="product-test" default="test" basedir=".">
-
- &aspectj_initProduct;
-
- <!-- ========================================================================== -->
- <!-- Init -->
- <!-- ========================================================================== -->
- <target name="init" depends="init.product,productTest.expect.dir"
- description="init values - launch from install dir or set product.dir variable">
- <echo message="init product-test.xml"/>
- <property name="productTest.classes.dir"
- location="${productTest.output.dir}/classes"/>
- <property name="script.expect.dir"
- location="${productTest.expect.dir}/bat"/>
- <!-- use .bat scripts if available, shell scripts otherwise -->
- <property name="scriptExtension" value=""/>
- <available file="${product.bin.dir}/ajc.bat"
- property="scriptExtension"
- value=".bat" />
- </target>
-
- <!-- ========================================================================== -->
- <!-- Clean everything in created dirs -->
- <!-- ========================================================================== -->
-
- <target name="clean" depends="init"
- description="delete test working dirs (does not clean results)">
- <mkdir dir="${productTest.output.dir}"/>
- <delete dir="${productTest.output.dir}"/>
- <mkdir dir="${productTest.output.dir}"/>
- </target>
-
- <!-- ========================================================================== -->
- <!-- Run product tests -->
- <!-- ========================================================================== -->
- <target name="test"
- depends="test.examples.buildscript,test.script.telecom,test.tools.sources"
- description="run available tests"/>
-
- <target name="test.script.telecom"
- depends="init,productTest.dir,product.dir,
- productTest.expect.bat.dir,productTest.output.dir"
- description="ajc/ajdoc/java/ajdb telecom example using bat scripts">
- <!-- antcall target="clean" / -->
-
- <!-- todo: execon not working - will fail outside windows -->
- <echo message="### file product-test.xml target test.script.telecom"/>
- <!-- ajc -->
- <property name="ajc.out" location="${productTest.output.dir}/telecom.ajc.txt"/>
- <property name="expect.ajc.out" location="${script.expect.dir}/telecom.ajc.txt"/>
- <exec dir="${product.examples.dir}"
- executable="${product.bin.dir}/ajc${scriptExtension}"
- output="${ajc.out}">
- <arg value="-d"/>
- <arg value="${productTest.classes.dir}"/>
- <arg value="-argfile"/>
- <arg value="telecom/billing.lst"/>
- <arg value="-classpath"/>
- <arg value="${product.rt.jar}"/>
- </exec>
- <!-- todo this is always failing... -->
- <comparefiles lhsFile="${ajc.out}"
- rhsFile="${expect.ajc.out}"/>
-
- <!-- ajdoc -->
- <property name="expect.ajdoc.out" location="${script.expect.dir}/telecom.ajdoc.txt"/>
- <property name="ajdoc.out" location="${productTest.output.dir}/telecom.ajdoc.txt"/>
- <exec dir="${product.examples.dir}"
- executable="${product.bin.dir}/ajdoc${scriptExtension}"
- output="${ajdoc.out}">
- <arg value="-d"/>
- <arg value="${productTest.classes.dir}"/> <!-- todo dump html in classes dir for now -->
- <arg value="-argfile"/>
- <arg value="telecom/billing.lst"/>
- <arg value="-classpath"/>
- <arg value="${product.rt.jar}"/>
- <arg value="telecom"/> <!-- todo (reconsider) had to add packagename -->
- </exec>
- <comparefiles lhsFile="${ajdoc.out}"
- rhsFile="${expect.ajdoc.out}"/>
-
- <!-- java -->
- <property name="java.out" location="${productTest.output.dir}/telecom.java.txt"/>
- <property name="expect.java.out" location="${script.expect.dir}/telecom.java.txt"/>
- <java classname="telecom.BillingSimulation"
- output="${java.out}">
- <classpath>
- <pathelement location="${productTest.classes.dir}"/>
- <pathelement location="${product.rt.jar}"/>
- </classpath>
- </java>
- <comparefiles lhsFile="${java.out}"
- rhsFile="${expect.java.out}"/>
-
- <!-- ajdb -->
- <echo file="${product.examples.dir}/ajdb.in">exit
- </echo>
- <property name="ajdb.out" location="${productTest.output.dir}/telecom.ajdb.txt"/>
- <property name="expect.ajdb.out" location="${script.expect.dir}/telecom.ajdb.txt"/>
- <exec dir="${product.examples.dir}"
- executable="${product.bin.dir}/ajdb${scriptExtension}"
- output="${ajdb.out}">
- <arg value="-classpath"/>
- <arg value="${product.rt.jar}${PS}${productTest.classes.dir}"/>
- <arg value="<"/>
- <arg value="${product.examples.dir}/ajdb.in"/>
- </exec>
- <comparefiles lhsFile="${ajdb.out}"
- rhsFile="${expect.ajdb.out}"/>
- </target>
-
- <!-- todo: also depends on jdk.tools.jar -->
- <!-- todo: ignore as duplicating examples/build.xml -->
- <target name="test.examples.antscript"
- depends="init,productTest.dir,product.dir,
- product.taskdefs.jar,product.rt.jar,
- product.tools.jar"
- description="compile/doc/run introduction example using ant taskdefs by delegation to ant-example.xml">
- <echo message="### file product-test.xml target test.examples.antscript"/>
- <ant antfile="${productTest.dir}/ant-example.xml"
- dir="${product.examples.dir}"
- output="${productTest.output.dir}/ant-example.ant.txt">
- <property name="PS"
- value="${path.separator}"/>
- <property name="product.dir"
- value="${product.dir}"/>
- <property name="jdk.tools.jar"
- location="${jdk.tools.jar}"/>
- <property name="jdk.dir"
- location="${jdk.dir}"/>
- </ant>
- </target>
-
- <target name="test.examples.buildscript"
- depends="init,product.dir,
- product.taskdefs.jar,product.rt.jar,
- product.tools.jar"
- description="compile/doc/run examples using build.xml script distributed with examples">
- <echo message="### file product-test.xml target test.examples.buildscript"/>
- <copy file="${product.taskdefs.jar}"
- todir="${product.lib.dir}" />
-
- <!-- XXX if docs come after ajc, then _always_ get OutOfMemoryError... -->
- <antcall target="antcall.test.examples.buildscript">
- <param name="example.target" value="docs" />
- </antcall>
-
- <antcall target="antcall.test.examples.buildscript.norun">
- <param name="example.target" value="spacewar" />
- </antcall>
-
- <antcall target="antcall.test.examples.buildscript">
- <param name="example.target" value="nonGui" />
- </antcall>
-
- <!-- OutOfMemory if including all
- <antcall target="antcall.test.examples.buildscript.norun">
- <param name="example.target" value="all" />
- </antcall>
- -->
- </target>
-
- <target name="antcall.test.examples.buildscript.norun"
- depends="init,product.dir,
- product.taskdefs.jar,product.rt.jar,
- product.tools.jar"
- description="invoke ant {example.target} for test.examples.buildscript (with norun)">
- <echo message="### ${example.target} (norun)"/>
- <mkdir dir="${productTest.output.dir}" />
- <ant antfile="${product.examples.dir}/build.xml"
- target="${example.target}"
- dir="${product.examples.dir}"
- output="${productTest.output.dir}/example-build.${example.target}.txt" >
- <property name="JAVA_HOME"
- location="${jdk.dir}"/>
- <property name="norun"
- location="skipRunning"/>
- </ant>
- </target>
-
- <target name="antcall.test.examples.buildscript"
- depends="init,product.dir,
- product.taskdefs.jar,product.rt.jar,
- product.tools.jar"
- description="invoke ant {example.target} for test.examples.buildscript (without norun)">
- <echo message="### ${example.target} (run)"/>
- <mkdir dir="${productTest.output.dir}" />
- <ant antfile="${product.examples.dir}/build.xml"
- target="${example.target}"
- dir="${product.examples.dir}"
- output="${productTest.output.dir}/example-build.${example.target}.txt" >
- <property name="JAVA_HOME"
- location="${jdk.dir}"/>
- </ant>
- </target>
-
-
- <!-- see also more recent devenv/dev/bin/aj/testToolsSrc.sh -->
- <target name="test.tools.sources"
- depends="init,product.tools.jar,product.src.dir"
- description="test source dist using ajc, ajdoc (todo remove - see ant-example)">
-
- <property name="tools.source.out"
- location="${productTest.output.dir}/source-tools"/>
- <property name="test.source.classes.dir"
- location="${productTest.output.dir}/source-tools"/>
- <property name="source-tools.jar"
- location="${productTest.output.dir}/source-tools.jar"/>
-
- <mkdir dir="${test.source.classes.dir}"/>
- <delete dir="${test.source.classes.dir}"/>
- <mkdir dir="${test.source.classes.dir}"/>
-
- <!-- todo validate product builds by comparison or invocation -->
- <antcall target="build.source.call">
- <param name="target.name" value="runtime" />
- </antcall>
- <antcall target="build.source.call">
- <param name="target.name" value="compiler" />
- </antcall>
- <antcall target="build.source.call">
- <param name="target.name" value="ajde" />
- </antcall>
- <antcall target="build.source.call">
- <param name="target.name" value="ajdoc" />
- </antcall>
-
- <echo message="" file="${tools.source.out}.empty"/>
- <!-- comparefiles lhsFile="${tools.source.out}"
- rhsFile="${tools.source.out}.empty" / -->
-
- <jar jarfile="${source-tools.jar}"
- basedir="${test.source.classes.dir}"/>
- <comparefiles lhsFile="${product.tools.jar}"
- rhsFile="${source-tools.jar}" />
-
- <delete dir="${test.source.classes.dir}"/>
- </target>
-
- <target name="build.source.call" >
- <echo message="# building (source) using ajc${scriptExtension} @${product.src.dir}/${target.name}.lst"/>
- <mkdir dir="${test.source.classes.dir}/${target.name}"/>
- <exec dir="${product.src.dir}"
- executable="${product.bin.dir}/ajc${scriptExtension}"
- output="${tools.source.out}.${target.name}.txt">
- <arg value="-d"/>
- <arg value="${test.source.classes.dir}/${target.name}"/>
- <arg value="-classpath"/>
- <arg value="${product.rt.jar}${PS}${jdk.tools.jar}"/> <!-- 1.3 for ajdoc -->
- <arg value="-argfile"/>
- <arg value="${target.name}.lst"/>
- </exec>
- <echo message="# START building (source) ${target.name} output"/>
- <echo message="" file="${tools.source.out}.${target.name}.txt"/>
- <echo message="# END building (source) ${target.name} output"/>
- </target>
-
- </project>
|