(Most of these can and should be rolled into an Ant script for automation; until that script is written, this describes tests and could and/or should be run.)
Before a release, run the following tests using a Java 1.3 VM (the minimum required by the AspectJ tools):
tests/junitModules.xml
(which runs all the
modules/{module}/testsrc/{module}ModuleTests.java).
tests/ajcTests.xml
and tests/ajcTestsFailing.xml.
Run these before the final build using the test harness,
as follows:
cd tests/
java -jar {..}/testing-drivers-all.jar ajcTests.xml -release
The -release option skips tests
marked purejava or knownLimitation
and only emits one-line results for each test:
PASS one test identifier() FAIL another test identifier() ...(Use
-help on the harness to see the full
definition of the -release alias.)
Save the output
to the appropriate subdirectory of the
org.aspectj/releases directory
with the name
ajcTests-result-{version}.txt.
or ajcTests-result-{version}-emacssym.txt.
Compare results with a prior release or test run using TestDiffs:
set CLASSPATH="{..}/testing-drivers-all.jar"
java org.aspectj.testing.util.TestDiffs {first-run}.txt {second-run}.txt
This will generate lists of tests fixed, broken, missing, or
added. For a release, no tests from ajcTests.xml
should be broken, and missing tests (those in the first run absent from the
second run) should be justified (usually the test was
removed as invalid). A test will show up as
missing from the first run and added to the second run if
it is renamed between runs.
For a final release, no test should be FAIL unless it is
deferred (including those from ajcTestsFailing.xml).
For (at least final) releases, run all relevant variants:
-emacssym
cd {aspectj-install}/doc/examples
{ant 1.5.1} -f build.xml
Also run 2-3 other targets from Ant and some examples directly:
all
runs all examples, and nonGui runs those
that do not require manual operation;
tracing-bc does bytecode weaving
tracing-adapter-ajc compiles the
tracing example using the
This quick test verifies that the
aspectjtools.jar and aspectjrt.jar
are installed and have a matching version, that the examples actually
compile and run, etc.
Some failures with past releases to consider checking: