changeset 22033:547ae53182bf

Add test for isLeaf
author Tom Rodriguez <tom.rodriguez@oracle.com>
date Fri, 19 Jun 2015 09:28:17 -0700
parents d1a41fbfcfd2
children 0cebd06508ca
files jvmci/com.oracle.jvmci.runtime.test/src/com/oracle/jvmci/runtime/test/TestResolvedJavaField.java jvmci/com.oracle.jvmci.runtime.test/src/com/oracle/jvmci/runtime/test/TestResolvedJavaMethod.java jvmci/com.oracle.jvmci.runtime.test/src/com/oracle/jvmci/runtime/test/TestResolvedJavaType.java
diffstat 3 files changed, 20 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/jvmci/com.oracle.jvmci.runtime.test/src/com/oracle/jvmci/runtime/test/TestResolvedJavaField.java	Thu Jun 18 10:07:27 2015 -0700
+++ b/jvmci/com.oracle.jvmci.runtime.test/src/com/oracle/jvmci/runtime/test/TestResolvedJavaField.java	Fri Jun 19 09:28:17 2015 -0700
@@ -120,7 +120,8 @@
     // @formatter:off
     private static final String[] untestedApiMethods = {
         "getDeclaringClass",
-        "isInternal"
+        "isInternal",
+        "isFinal"
     };
     // @formatter:on
 
--- a/jvmci/com.oracle.jvmci.runtime.test/src/com/oracle/jvmci/runtime/test/TestResolvedJavaMethod.java	Thu Jun 18 10:07:27 2015 -0700
+++ b/jvmci/com.oracle.jvmci.runtime.test/src/com/oracle/jvmci/runtime/test/TestResolvedJavaMethod.java	Fri Jun 19 09:28:17 2015 -0700
@@ -403,6 +403,7 @@
         "toParameterTypes",
         "getParameterAnnotation",
         "getSpeculationLog",
+        "isFinal",
         "$jacocoInit"
     };
     // @formatter:on
--- a/jvmci/com.oracle.jvmci.runtime.test/src/com/oracle/jvmci/runtime/test/TestResolvedJavaType.java	Thu Jun 18 10:07:27 2015 -0700
+++ b/jvmci/com.oracle.jvmci.runtime.test/src/com/oracle/jvmci/runtime/test/TestResolvedJavaType.java	Fri Jun 19 09:28:17 2015 -0700
@@ -838,6 +838,23 @@
     }
 
     @Test
+    public void isLeafTest() {
+        for (Class<?> c : classes) {
+            ResolvedJavaType type = metaAccess.lookupJavaType(c);
+            ResolvedJavaType arrayType = c != void.class ? metaAccess.lookupJavaType(getArrayClass(c)) : null;
+            if (c.isPrimitive()) {
+                assertTrue(type.isLeaf());
+                assertTrue(arrayType == null || arrayType.isLeaf());
+            } else {
+                assertTrue(c.toString(), type.isLeaf() == arrayType.isLeaf());
+                if (!c.isArray()) {
+                    assertTrue(c.toString(), type.isLeaf() == Modifier.isFinal(c.getModifiers()));
+                }
+            }
+        }
+    }
+
+    @Test
     public void findMethodTest() {
         try {
             ResolvedJavaMethod findFoo = metaAccess.lookupJavaType(D.class).findMethod("foo", metaAccess.parseMethodDescriptor("()V"));