(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 -releaseThe
-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}.txtThis 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.xmlAlso 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: