aboutsummaryrefslogtreecommitdiffstats
path: root/tests/readme-tests-module.html
diff options
context:
space:
mode:
Diffstat (limited to 'tests/readme-tests-module.html')
-rw-r--r--tests/readme-tests-module.html153
1 files changed, 153 insertions, 0 deletions
diff --git a/tests/readme-tests-module.html b/tests/readme-tests-module.html
new file mode 100644
index 000000000..c4e34e05d
--- /dev/null
+++ b/tests/readme-tests-module.html
@@ -0,0 +1,153 @@
+<html>
+<title>AspectJ tests</title>
+<body>
+<h1>AspectJ tests</h1>
+
+<h3>Testing and Tests</h3>
+Testing on the AspectJ project is fairly straightforward.
+For compiler issues/bugs, we write harness tests.
+For API issues/bugs, we write JUnit tests.
+We also have other testware for system testing.
+<p>
+This module contains test data and scripts, while the testing-drivers
+and testing modules contain the harness.
+
+Tests differ in the kind of harness they use and their target.
+(Many tests are unused and date back to earlier times in the project.)
+
+<p>
+<table border="1" cellpadding="1">
+<tr><th align="left"><u>Test</u> Description</th>
+ <th align="left">Driver</th>
+ <th align="left">Sources</th>
+ </tr>
+
+<tr><td><a href="#harness">Harness</a> tests
+ compile and run test sources.
+ </td>
+ <td>Harness in testing-drivers module</td>
+ <td><a href="ajcTests.xml">ajcTests.xml</a>,
+ and <a href="ajcTests.xml">ajcTests10.xml</a>,
+ referring to tests in
+ <a href="new">new/</a>,
+ <a href="base">base/</a>,
+ <a href="errors">errors/</a>,
+ <a href="design">design/</a>,
+ <a href="pureJava">pureJava/</a>,
+ etc.
+ </td>
+
+ </tr>
+
+<tr><td><a href="#product">Product</a> tests use a variety of
+ Ant and Bash scripts to drive the product distributions.
+ <td>bash,
+ <a href="http://jakarta.apache.org/Ant">Ant</a>
+ </td>
+ <td><a href="product">product/..</a></td>
+ </tr>
+
+<tr><td><a href="#ajctest">AjcTest</a> is a large taskdef which
+ compiles and runs large Java systems.
+ </td>
+ <td>AjcTest
+ <a href="http://jakarta.apache.org/Ant">Ant</a>
+ Task in testing module </td>
+ <td><a href="other-systems/">other-systems/..</a>,
+ <a href="XXX">aspectj-external-lib.jar?/other-systems/</a></td>
+ </tr>
+
+<tr><td><a href="#jacks">Jacks</a> is the Jikes compiler test suite,
+ run for us using a bash script.
+ <td>bash</td>
+ <td>See the
+ <a href="http://www-124.ibm.com/developerworks/oss/cvs/jikes/~checkout~/jacks/jacks.html">
+ Jacks project page</a>
+ </td>
+ </tr>
+
+
+<tr><td><a href="#junit">JUnit</a> tests normally are run directly
+ before checking in,
+ but there is an Ant script to run and report on them all.
+ </td>
+ <td><a href="junit.org">JUnit</a></td>
+ <td>Every module has a testsrc/ directory with JUnit tests.</td>
+ </tr>
+</table>
+
+<h3><a name="#harness"></a>Harness</h3>
+
+These are compiler test cases, the preferred form for
+any compiler tests. The XML files are test definitions,
+and the subdirectories contain the test sources. Many of the
+test source files are no longer used. The test definitions are
+segregated for convenience as follows:
+<ul>
+ <li><a href="ajcTests.xml">ajcTests.xml</a>: main test suite.
+ After a release, these tests should always run and pass.
+ </li>
+ <li><a href="ajcTests10.xml">ajcTests10.xml</a>:
+ Tests for the 1.0 compiler. In some cases, error tests
+ differ between the 1.0 and 1.1 compiler only in the
+ errors expected to be generated.
+ </li>
+ <li><a href="ajcTestsBroken.xml">ajcTestsBroken.xml</a>:
+ These tests fail, and the tests are broken.
+ The tests should be fixed and rolled into ajcTests.xml
+ </li>
+ <li><a href="ajcTestsFailing.xml">ajcTestsFailing.xml</a>:
+ These tests fail, and the compiler is broken.
+ When fixed, these tests should be rolled into
+ <a href="ajcTests.xml">ajcTests.xml</a>.
+ </li>
+ <li><a href="ajcTestsAttic.xml">ajcTestsAttic.xml</a>:
+ These are broken or failing tests not slated to be fixed.
+ </li>
+ <li><a href="ajcHarnessTests.xml">ajcHarnessTests.xml</a>:
+ These are tests to exercise the test harness itself.
+ </li>
+</ul>
+To run the harness, use <code>org.aspectj.testing.drivers.Harness</code>,
+in the <code>testing-drivers</code> module.
+For help on harness options, use <code>-help</code>.
+For for help on component options, see the package docs.
+Note in particular how to select tests using keywords or supply compiler
+arguments on the command line.
+<p>
+To write a new test, evolve an existing example. See the dtd and/or
+the javadoc for the testing harness implementation in the
+<code>testing</code> module for more details.
+
+<p>To write a test case for a bug, see XXX todo.
+
+<h3><a name="#product"></a>Product</h3>
+Product tests target a built distribution or do compiler (argument)
+testing not supported by the harness.
+Many have been superceded by ant tests.
+
+<h3><a name="#ajctest"></a>AjcTest</h3>
+ <a href="ajctest.xml">ajctest.xml</a>
+ is an Ant script that compiles and runs large systems.
+ The scripts tell the AjcTest task from the testing module to drive
+ the sources in other-systems through compile/doc/run cycles.
+ To set up the tests, the script combines the aspects checked in to
+ other-systems/ with the Java source files from various open-source
+ projects, contained in aspectj-external-lib.zip.
+ <!-- XXX install and correct -->
+
+
+<h3><a name="#jacks"></a>Jacks</h3>
+Jacks is the Jikes compiler test suite available at the
+ <a href="http://www-124.ibm.com/developerworks/oss/cvs/jikes/~checkout~/jacks/jacks.html">
+ Jacks project page</a>.
+
+We have a bash script to run it using ajc and javac and compare
+ the results.
+ </td>
+ </tr>
+
+</table>
+
+</body>
+</html>