[kaffe] The Verifier and Regression Tests
rgonzale at wso.williams.edu
Sun Jun 29 15:03:01 PDT 2003
I've started checking in small portions of the verifier for testing. The
first thing this has done is to cause kaffe to fail a regression test,
ArrayForName.java ;) In my defense, it's a bad test because an abstract
method in some class I has a code attribute, which is not OK. In fact,
Sun's JVM won't allow the test to be run either:
Exception in thread "main" java.lang.ClassFormatError: I (Code
attribute in native or abstract methods)
I'm going to look at that specific regression test tomorrow to see if I
can fix it up.
It would be nice if people would test kaffe with the verifier on whatever
they're working on. By default kaffe doesn't not do any verification, but
if you run it with -verifyremote it will verify everything that's not from
the bootclasspath (i.e. the standard libraries).
When I first wrote pass 2, I had it enforce all the static constaints
listed in the JVML Spec 2. However, it turns out that Sun's JVM doesn't
enforce many of the containts that it should, so I've occassionally come
across a file that my verifier won't pass but Sun's will because I was
being too strict. Thus if you run kaffe and it rejects files that Sun's
does not, definitely let me know. My goal is to make it fault for fault
compatible with Sun's behavior and not that of the actual specification.
More information about the kaffe