Mercurial > hg > graal-jvmci-8
diff jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaType.java @ 23366:45168ac6d3bc
Merge.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Fri, 29 Apr 2016 11:10:18 +0200 |
parents | 30af491f98c5 b05ad394cfd5 |
children | 802821d82a92 |
line wrap: on
line diff
--- a/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaType.java Fri Apr 29 10:54:19 2016 +0200 +++ b/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaType.java Fri Apr 29 11:10:18 2016 +0200 @@ -842,6 +842,31 @@ } } + static class TrivialCloneable implements Cloneable { + @Override + protected Object clone() { + return new TrivialCloneable(); + } + } + + @Test + public void isAllocationCloneableTest() { + ResolvedJavaType cloneable = metaAccess.lookupJavaType(Cloneable.class); + for (Class<?> c : classes) { + ResolvedJavaType type = metaAccess.lookupJavaType(c); + if (type.isAllocationCloneable()) { + // Only Cloneable types should be allocation cloneable + assertTrue(c.toString(), cloneable.isAssignableFrom(type)); + } + } + /* + * We can't know for sure which types should be allocation cloneable on a particular + * platform but assume that at least totally trivial objects should be. + */ + ResolvedJavaType trivialCloneable = metaAccess.lookupJavaType(TrivialCloneable.class); + assertTrue(trivialCloneable.toString(), trivialCloneable.isAllocationCloneable()); + } + @Test public void findMethodTest() { try {