summaryrefslogtreecommitdiffstats
path: root/taskdefs
diff options
context:
space:
mode:
authorwisberg <wisberg>2003-03-13 02:54:32 +0000
committerwisberg <wisberg>2003-03-13 02:54:32 +0000
commit57129e35ce37754f06d118f129e60dcda6ef240e (patch)
treef5236d4194f4b9377c0078c5a3df316183af26c5 /taskdefs
parent6368a238627924514c219599d4417cdfd524120c (diff)
downloadaspectj-57129e35ce37754f06d118f129e60dcda6ef240e.tar.gz
aspectj-57129e35ce37754f06d118f129e60dcda6ef240e.zip
upgraded for new resource-copying API's and also testing nested paths and refid's.
Diffstat (limited to 'taskdefs')
-rw-r--r--taskdefs/testdata/incTest/incTest.xml80
-rw-r--r--taskdefs/testdata/incTest/readme-incTest.html63
2 files changed, 124 insertions, 19 deletions
diff --git a/taskdefs/testdata/incTest/incTest.xml b/taskdefs/testdata/incTest/incTest.xml
index 615cac04d..5e050302c 100644
--- a/taskdefs/testdata/incTest/incTest.xml
+++ b/taskdefs/testdata/incTest/incTest.xml
@@ -1,6 +1,14 @@
<!-- to test incremental task, run setup then test -->
<project default="test" basedir=".">
+
+ <path id="aspectjrt.path">
+ <pathelement location="${basedir}/../../../lib/test/aspectjrt.jar"/>
+ </path>
+ <path id="aspects.path">
+ <pathelement location="${basedir}/output/aspects.jar"/>
+ </path>
+
<target name="init">
<property name="td"
location="${basedir}/../.."/>
@@ -21,16 +29,74 @@
</classpath>
</taskdef>
</target>
+
+ <target name="clean" depends="init">
+ <delete quiet="on">
+ <fileset dir="${test.dir}/classes"/>
+ <fileset dir="${test.dir}/injars"/>
+ </delete>
+ </target>
+ <target name="test-both" depends="init">
+ <mkdir dir="${test.dir}/injars"/>
+ <iajc outjar="${test.dir}/injars/both.jar"
+ failonerror="true">
+ <sourceroots>
+ <pathelement path="${test.dir}/injarSrc/one"/>
+ <pathelement path="${test.dir}/injarSrc/two"/>
+ </sourceroots>
+ <classpath>
+ <pathelement path="${td}/../lib/test/aspectjrt.jar"/>
+ </classpath>
+ </iajc>
+ </target>
+
+ <target name="test-all" depends="init">
+ <mkdir dir="${test.dir}/injars"/>
+ <mkdir dir="${test.dir}/output"/>
+ <iajc outjar="${test.dir}/injars/all-one.jar"
+ classpath="${td}/../lib/test/aspectjrt.jar"
+ sourceroots="${test.dir}/injarSrc/one"
+ failonerror="true"/>
+ <iajc outjar="${test.dir}/output/aspect.jar"
+ failonerror="true"
+ classpathref="aspectjrt.path"
+ srcdir="${test.dir}/src">
+ <include name="TraceMains.java"/>
+ </iajc>
+ <iajc outjar="${test.dir}/output/all.jar"
+ sourcerootcopyfilter="**/*.java"
+ copyinjars="true"
+ failonerror="true">
+ <classpath>
+ <pathelement path="${td}/../lib/test/aspectjrt.jar"/>
+ </classpath>
+ <aspectpath refid="aspects.path"/>
+ <sourceroots>
+ <pathelement path="${test.dir}/injarSrc/two"/>
+ <pathelement path="${test.dir}/src"/>
+ </sourceroots>
+ <injars>
+ <pathelement path="${test.dir}/injars/all-one.jar"/>
+ </injars>
+ </iajc>
+ </target>
+
<target name="setup" depends="init"
description="create input jars">
<mkdir dir="${test.dir}/injars"/>
+ <iajc outjar="${test.dir}/injars/both.jar"
+ classpath="${td}/../lib/test/aspectjrt.jar"
+ sourceroots="${test.dir}/injarSrc/one,${test.dir}/injarSrc/two"
+ failonerror="true"/>
<iajc outjar="${test.dir}/injars/oneClasses.jar"
classpath="${td}/../lib/test/aspectjrt.jar"
- sourceroots="${test.dir}/injarSrc/one"/>
+ sourceroots="${test.dir}/injarSrc/one"
+ failonerror="true"/>
<iajc outjar="${test.dir}/injars/twoClasses.jar"
classpath="${td}/../lib/test/aspectjrt.jar"
- sourceroots="${test.dir}/injarSrc/two"/>
+ sourceroots="${test.dir}/injarSrc/two"
+ failonerror="true"/>
<zip zipfile="${test.dir}/injars/one.jar">
<zipfileset src="${test.dir}/injars/oneClasses.jar"/>
<fileset dir="${test.dir}/injarSrc/one"
@@ -50,20 +116,22 @@
</target>
<target name="test" depends="init">
- <mkdir dir="${test.dir}/output"/>
+ <mkdir dir="${test.dir}/output/classes"/>
<property name="tag.file"
location="${test.dir}/output/tagFile.txt"/>
<echo message="edit to recompile, delete to quit"
file="${tag.file}"/>
<echo message="update to recompile, delete to quit: ${tag.file}"/>
- <iajc outjar="${test.dir}/output/outjar.jar"
+ <iajc classpath="${td}/../lib/test/aspectjrt.jar"
+ outjar="${test.dir}/output/outjar.jar"
injars="${test.dir}/injars/one.jar;${test.dir}/injars/two.jar"
- classpath="${td}/../lib/test/aspectjrt.jar"
sourceroots="${test.dir}/src"
- xCopyInjars="true"
+ copyInjars="true"
+ sourceRootCopyFilter="**/*.java,**/CVS/*"
tagFile="${tag.file}"
verbose="on"/>
<!--
+ destDir="${test.dir}/output/classes"
incremental="true"
-->
</target>
diff --git a/taskdefs/testdata/incTest/readme-incTest.html b/taskdefs/testdata/incTest/readme-incTest.html
index 70dbd9a37..1098a7dc8 100644
--- a/taskdefs/testdata/incTest/readme-incTest.html
+++ b/taskdefs/testdata/incTest/readme-incTest.html
@@ -2,17 +2,31 @@
<title>Incremental test of AjcTask Ant task</title>
<body>
<h2>Incremental test of AjcTask Ant task</h2>
-This directory contains files for manually testing the
-incremental behavior of the AjcTask Ant task.
-It has an Ant script which builds two input jars
+This directory contains files for manually testing
+two AjcTask Ant task facilities:
+<ul>
+<li>incremental builds, using tag file or input stream
+ (supported directly by the compiler)
+ </li>
+<li>resource copying using input jars or source roots
+ and output jar or directory
+ (only supported in the Ant task).
+ </li>
+</ul>
+
+<a href="incTest.xml">incTest.xml</a>
+is an Ant script which builds two input jars
and runs an incremental test using a tag file.
<p>
The results must be verified by hand manually at present;
-This test should be updated to run automatically.
+This test should be updated to run using JUnit like
+<a href="../../testsrc/org/aspectj/tools/ant/taskdefs/AjcTaskTest.java">
+ AjcTaskTest.java</a>.
+
<h3>Sample procedure</h3>
This shows how to set up the test and check whether
-the incremental tag file and injar-copying features work.
+the incremental tag file and resource-copying features work.
Throughout, <code>{ant}</code> is assumed to be
<code>../../../lib/ant/bin/ant</code> and the directory
is assumed to be this directory, with the Ant build script
@@ -49,11 +63,14 @@ The task will do an initial compilation and silently wait.
the execution of any static main(String[]) method.
<p>
</li>
-<li>Also test that the injar files were copied to the output jar.
- The non-.class files in <a href="injarSrc">injarSrc/</a>
- should be included in the output jar:
+<li>Check that the output jar got the injar and src files:
+
<pre> jar tf output/outjar.jar</pre>
<p>
+ The output should list the
+ non-.class files in <a href="injarSrc">injarSrc/</a>
+ and the non CVS/.java files in the <a href="src">src/</a> dir.
+ <p>
</li>
<li>To test incremental compiles,
edit the aspect <a href="src/TraceMains.java">src/TraceMains.java</a>
@@ -65,18 +82,33 @@ The task will do an initial compilation and silently wait.
</li>
<li>Test the generated output jar again
to see if the changes are reflected in the runtime behavior
- and if the non-.class files are being copied correctly.
+ and if files are being copied correctly.
<p>
</li>
<li>Repeat this process until satisfied. Delete the tagfile to quit:
<pre> rm output/tagfile.txt</pre>
<p>
</li>
+<li>Also run the targets <code>test-all</code>
+and <code>test-both</code>.
+ <p>
+ </li>
</ol>
-To test the <code>-incremental</code> option or to test without
-copying input jar files or using an output jar, edit the
-<a href="incTest.xml">incTest.xml</a> script and redo the test.
+Many combination of the option variants are possible.
+Test the relevant ones by editing the
+<a href="incTest.xml">incTest.xml</a> script
+and redoing the test.
+<p>
+<table cellpadding="1" border="1">
+<tr><th>Option</th><th>Variants</th></tr>
+<tr><td>incremental</td><td>none, -incremental, -tagFile</td></tr>
+<tr><td>output</td><td>none (default "."), destDir, output jar</td></tr>
+<tr><td>injars</td><td>none, one, two</td></tr>
+<tr><td>injar copying</td><td>off (default), on</td></tr>
+<tr><td>source resource copying</td><td>off (default), various patterns</td></tr>
+</table>
+
<p>
<h3>Clean-up</h3>
@@ -84,14 +116,19 @@ Take care to preserve CVS state after running this test.
It calls on you to edit checked-in files and generates files
to local repository directories. The best thing is to delete
the <code>output</code> and <code>injars</code> directories
+(using the <code>clean</code> task)
and revert to repository forms for sources (unless fixing them).
<h3>Upgrade</h3>
-This needs to be upgraded to run manually.
+This needs to be upgraded to run automatically.
There is a file/tree-comparison utility to revive from the
aspectj-attic which can be used to compare expected and actual
results of the jar files. Setting up the tasks to run incrementally
might be done using the parallel task, but...
+<p>
+In any case, the nested options tested here should move
+to non-incremental JUnit tests.
+<p>
<hr>
</body>
</html>