Mercurial > hg > graal-compiler
changeset 21212:9a7125f0eeda
Add test for arrays of interface
author | Stefan Anzinger <stefan.anzinger@oracle.com> |
---|---|
date | Mon, 04 May 2015 09:10:52 +0200 |
parents | 6b11405f0279 |
children | 0028ab94d268 |
files | graal/com.oracle.graal.nodes.test/src/com/oracle/graal/nodes/test/ObjectStampJoinTest.java |
diffstat | 1 files changed, 37 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes.test/src/com/oracle/graal/nodes/test/ObjectStampJoinTest.java Mon May 04 08:49:06 2015 +0200 +++ b/graal/com.oracle.graal.nodes.test/src/com/oracle/graal/nodes/test/ObjectStampJoinTest.java Mon May 04 09:10:52 2015 +0200 @@ -122,34 +122,56 @@ } @Test - public void testJoinInterface0() { - Stamp a = StampFactory.declared(getType(A.class)); - Stamp i = StampFactory.declaredTrusted(getType(I.class)); + public void testJoinInterfaceSimple() { + // Tests joining of interface + testJoinInterface(A.class, B.class, I.class); + } + + @Test + public void testJoinInterfaceArray() { + // Tests joining of arrays interface + testJoinInterface(A[].class, B[].class, I[].class); + } + + @Test + public void testJoinInterfaceMultiArray() { + // Tests joining of multidimensional arrays of interface + testJoinInterface(A[][].class, B[][].class, I[][].class); + } + + private void testJoinInterface(Class<?> typeA, Class<?> typeB, Class<?> typeI) { + testJoinInterface0(typeA, typeI); + testJoinInterface1(typeA, typeI); + testJoinInterface2(typeB, typeI); + testJoinInterface3(typeB, typeI); + } + + private void testJoinInterface0(Class<?> typeA, Class<?> typeI) { + Stamp a = StampFactory.declared(getType(typeA)); + Stamp i = StampFactory.declaredTrusted(getType(typeI)); Assert.assertNotSame(StampFactory.empty(Kind.Object), join(a, i)); } - @Test - public void testJoinInterface1() { - Stamp aNonNull = StampFactory.declaredNonNull(getType(A.class)); - Stamp i = StampFactory.declaredTrusted(getType(I.class)); + private void testJoinInterface1(Class<?> typeA, Class<?> typeI) { + Stamp aNonNull = StampFactory.declaredNonNull(getType(typeA)); + Stamp i = StampFactory.declaredTrusted(getType(typeI)); Stamp join = join(aNonNull, i); Assert.assertTrue(join instanceof ObjectStamp); Assert.assertTrue(((ObjectStamp) join).nonNull()); } - @Test - public void testJoinInterface2() { - Stamp bExact = StampFactory.exactNonNull(getType(B.class)); - Stamp i = StampFactory.declaredTrusted(getType(I.class)); + private void testJoinInterface2(Class<?> typeB, Class<?> typeI) { + Stamp bExact = StampFactory.exactNonNull(getType(typeB)); + Stamp i = StampFactory.declaredTrusted(getType(typeI)); Stamp join = join(i, bExact); Assert.assertEquals(StampFactory.empty(Kind.Object), join); } - @Test - public void testJoinInterface3() { - Stamp bExact = StampFactory.exactNonNull(getType(B.class)); - Stamp i = StampFactory.declared(getType(I.class)); // not trusted + private void testJoinInterface3(Class<?> typeB, Class<?> typeI) { + Stamp bExact = StampFactory.exactNonNull(getType(typeB)); + Stamp i = StampFactory.declared(getType(typeI)); // not trusted Stamp join = join(i, bExact); Assert.assertEquals(bExact, join); } + }