Information on the tests that are in org.multijava.mjc.testcase.codegen

The tests fall into these categories:

1) Tests for the java 1.4 platforma (in the java1_4 subdirectory)

2) .java files that are compiled using mjc, perhaps producing some caution or 
error output.  These have a .java-expected file
that contains the expected output (modulo platform-dependent line endings)

Any file that ends in .java and is not filtered out by the skip file will
be included in these tests.  To add a new test simply add a .java file and
the associated .java-expected file.

These tests are run as junit tests.  The Makefile contains targets that cause
the list of test files to be written into the file 'listTestsCompiles'.
The JUnit TestSuite named 'TestsCompilesTestSuite.java' reads this file,
creates a test case for each file listed in 'listTestsCompiles'.

To run these tests outside of junit, use the target 'make compileall'.
They cannot be run individually.

Note that when the test fails, a .java-ckd file is created that can be diff'ed
against the .java-expected file to show the differences.

A new test can be added by adding the appropriate .java, .java-exepected and
.class-expected files.

3) Disassembly tests.  

This test is run on each .class file that is present after the compile tests
in #2.  Each .class file is disassembled and the output compared to the 
content of X.class-expected.  We also perform the additional check that there
are no .class-expected files for which no .class file was generated (e.g.
if the compile of a .java file unexpectedly failed, producing no .class file).

The junit implementation of these tests generates a list of .class files to
be tested in the file 'listTestsDisassembles'.  Then the JUnit test suite
reads this file and creates a JUnit test case that performs the disassembly
and comparison fo each file listed.

The non-junit version can be run using 'make checkjava'.

4) .sh files that run a script of tests.

These consist of all .sh files not excluded by the skip file.

These can be run outside of junit using 'make checksh', or 'make X.sh-test'
to run an individual test named X.

They have been converted to junit tests by hand, in the *TestCase.java files.
ANY CHANGES TO THE .sh FILES MUST BE MATCHED BY CHANGES TO THE TestCase.java
files.

However, these tests have also been converted to Junit tests, where they run
faster.  Each X.sh test file has been converted to a XTestCase.java junit
test case.  THIS IS A HAND-TRANSLATION.  IF YOU MODIFY A .sh TEST, YOU WILL 
NEED TO MAKE THE CORRESPONDING MODIFICATIONS TO THE TestCase program.

The junit versions of the .sh tests are not subject to the skip mechanism.
