#### 6.4.5 The Java library testsuites.

Runtime tests are executed via ‘`make check`’ in the `target/libjava/testsuite` directory in the build tree. Additional runtime tests can be checked into this testsuite.

Regression testing of the core packages in libgcj is also covered by the Mauve testsuite. The Mauve Project develops tests for the Java Class Libraries. These tests are run as part of libgcj testing by placing the Mauve tree within the libjava testsuite sources at `libjava/testsuite/libjava.mauve/mauve`, or by specifying the location of that tree when invoking ‘`make`’, as in ‘`make MAUVEDIR=~/mauve check`’.

To detect regressions, a mechanism in `mauve.exp` compares the failures for a test run against the list of expected failures in `libjava/testsuite/libjava.mauve/xfails` from the source hierarchy. Update this file when adding new failing tests to Mauve, or when fixing bugs in libgcj that had caused Mauve test failures.

The Jacks project provides a testsuite for Java compilers that can be used to test changes that affect the GCJ front end. This testsuite is run as part of Java testing by placing the Jacks tree within the libjava testsuite sources at `libjava/testsuite/libjava.jacks/jacks`.

We encourage developers to contribute test cases to Mauve and Jacks.