Running Mauve with Kaffe ======================== Author: Dalibor Topic <robilad@yahoo.com> Introduction ============ Q: What is Mauve? A: Mauve is a free test suite for Java class libraries. It contains tests checking the compatibility of an implementation against the Java API specifications. Q: Where can I get it? A: Visit the Mauve site at http:// for more information. Make sure that you follow the latest Mauve developements in their CVS. Q: How well does Mauve run on Kaffe? A: The tests for Java 1.0 and Java 1.1 APIs build and run on kaffe. The tests for other API versions don't build due to missing methods and classes in kaffe's class library. Nevertheless, you can test specific classes and packages by using KEYS="\!java. x.y.z" to test a specific package or class x.y.z. In your runs, you should exclude the Unicode tests, since they result in a ton of errors, most of which are bogus. You should run mauve with "\!java.lang.Character.unicode" in your KEYS string. Installation ============ 1. get kaffe from CVS, build and install it somewhere 2. get mauve from CVS 3. cd mauve 4. autoreconf (you need latest auto* tools for this step) 5. ./configure JAVA=/path/to/kaffe JAVAC=/path/to/kjc Running ======== In order to test kaffe's compatibiity with some Java API release: make check KEYS="JDK 1.release \!java.lang.Character.unicode" > kaffe.log Mauve has an option to group the KEYS you are using. When you create a file "mauve-kaffe" with your normal KEYS settings then you can then do "make check KEYS=kaffe". Kaffe comes with a "mauve-kaffe" file in the developers directory. Don't forget to do a "rm .save-keys choices" after editing the "mauve-kaffe" file before rerunning "make check KEYS=kaffe" to make sure the changes get picked up. If you want extra verbose output, use make check KEYS=something TESTFLAGS="-verbose". You can pick single tests to run, by using make check KEYS="JDK1.release \!java. \!javax. package.class.test" Finally, you can pipe the output of the verbose runs into a perl script that generates nice web pages. The script mauve-html-gen.pl can be found in the developers directory. Helping Out =========== There are several ways how you can help out on kaffe using mauve. Running Mauve Regularly ----------------------- Despite everyone's efforts to improve kaffe, sometimes fixes break other things on other platforms. In order to be able to find out early when things break, we need contributors that run mauve regularly on their platforms, publish the results, and report regressions. Fixing Issues You Find ---------------------- You're likely to discover bugs in kaffe's implementation by running mauve tests. If you can, please fix the bugs that you find and post patches to the kaffe mailing list kaffe@kaffe.org. Writing Mauve Tests ------------------- Mauve provides a nice test framework. It's quite simple to use and write tests for it. When you find bugs in kaffe's implementation of an API that are not exposed by mauve tests already, please submit a test to the mauve mailing list. That way, other free Java virtual machine and class library implementations can use the test case to check their own work. Known Issues ============ The Unicode tests result in a ton of failures. According to developers/README.unicode, it's the Unicode tests that need fixing. Some tests can not be built since kaffe doesn't implement the APIs yet. They have been commented out in the "mauve-kaffe" file.