This is the mail archive of the
mauve-patches@sourceware.org
mailing list for the Mauve project.
PATCH: fix gnu/testlet/java/lang/Class/security for very lazy VMs
- From: Edwin Steiner <edwin dot steiner at gmx dot net>
- To: Mauve Patch List <mauve-patches at sources dot redhat dot com>
- Date: Sat, 11 Mar 2006 21:29:04 +0100
- Subject: PATCH: fix gnu/testlet/java/lang/Class/security for very lazy VMs
Hello!
The following patch fixes the gnu/testlet/java/lang/Class/security
testlet for very lazy VMs like cacao. The problem was that these lines:
// Make sure everything's fully resolved, or we'll be loading
// classes during tests and the extra checks will make us fail.
testClass.getDeclaredClasses();
testClass.getDeclaredMethods();
do not resolve enough because they only request non-inherited
methods. When running this test, cacao causes a problem when
resolving the parameters of the inherited method
gnu.testlet.Testlet.test(Lgnu/testlet/TestHarness;)V
cacao loads gnu/testlet/TestHarness only then. (Note that
"testClass" in this testlet has a different class loader
(on purpose, it seems), so this class has to be loaded from
the classfile. Adding getClasses and getMethods solves
this issue.
-Edwin
2006-03-11 Edwin Steiner <edwin.steiner@gmx.net>
* gnu/testlet/java/lang/Class/security.java (test):
Call getClasses() and getMethods() during preparation, so no
classes have to be loaded (causing extra checks).
Index: gnu/testlet/java/lang/Class/security.java
===================================================================
RCS file: /cvs/mauve/mauve/gnu/testlet/java/lang/Class/security.java,v
retrieving revision 1.3
diff -u -p -r1.3 security.java
--- gnu/testlet/java/lang/Class/security.java 3 Feb 2006 10:21:46 -0000 1.3
+++ gnu/testlet/java/lang/Class/security.java 11 Mar 2006 20:22:53 -0000
@@ -49,6 +49,8 @@ public class security implements Testlet
// classes during tests and the extra checks will make us fail.
testClass.getDeclaredClasses();
testClass.getDeclaredMethods();
+ testClass.getClasses();
+ testClass.getMethods();
// we need to restrict access to some packages for some of the
// checks to occur.