Attached is a file with some instructions on how to use EMMA to generate the coverage reports for Mauve/Classpath. I will be on IRC in the next few days and will try to commit a script that automatically generates a list of which classes can be instrumented. I've included instructions on how that script can be written in the attachment. Hopefully I'll be on IRC in the next little while and find time to make some small contributions to the community. Thanks very much for the experience and camaraderie of the past 16 months. Cheers, Tony
EMMA INSTRUCTIONS: ======================= - the following instructions refer to "emma.jar". Copy this from /home/abalkiss/emma.jar. THE SETUP: - create a folder for instrumented sources, $INST - cp -r "/home/user/sources/classpath/install" $INST - cd $INST/install/share/classpath - cp emma.jar . - fastjar xf emma.jar - (unzip glibj.zip and remove glibj.zip) - setup a JamVM (--disable-zip, --with-classpath-install-dir=$INST/install --prefix=$JAMINSTR) INSTRUMENT THE CLASSPATH INSTALLATION - cd sources/mauve - for the following commands, "JAVA" has been tested as either gij or Sun's java - JAVA -cp emma.jar emma instr -m overwrite -cp $INST/$SUBFOLDER - a list of $SUBFOLDERs that can be instrumented is at the bottom of this file - this will drop a "coverage.em" into sources/mauve -> this is one of the files needed to generate the report RUN THE TESTS USING THE INSTRUMENTED VM - JAVA Harness -vm $JAMINSTR/bin/jamvm gnu/testlet - when the tests complete, a "coverage.ec" will be dropped into sources/mauve -> this is needed to generate the report GENERATE THE REPORT - JAVA -cp emma.jar emma report -r html -sp $CPSRC -in coverage.em,coverage.ec -Dreport.sort=+name - notes: $CPSRC is the path to your regular Classpath sources, not instrumented, not the build folder. For me, this is /home/abalkiss/.workspace/classpath. For you this might be /home/fitzsim/sources/classpath. This is so the line-by-line hilighting can be done. - this drops a "coverage" folder into sources/mauve -> this is the web report. coverage/index.html is the start page. ***SUBFOLDERS THAT CAN BE INSTRUMENTED*** the folders/classes that can currently be instrumented is reflected in the script on builder.classpath.org "MauveEMMA" When instrumenting, EMMA accepts only a folder or a jar file, so if you want to test down to the class level which files can be instrumented, you should create a jar file containing the class and instrument it. This can be seen in the MauveEMMA script on builder as well. A script that automatically determines which classes can be instrumented can be written in this way - create a jar containing a single .class file, instrument it, try to run the jamvm built against it, and if the Harness starts up and everything is okay, this file can be instrumented.