InvokeInterface_01.java revision 12651:6ef01bd40ce2
1240616Sjimharris/* 2253112Sjimharris * Copyright (c) 2014, 2014, Oracle and/or its affiliates. All rights reserved. 3240616Sjimharris * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4240616Sjimharris * 5240616Sjimharris * This code is free software; you can redistribute it and/or modify it 6240616Sjimharris * under the terms of the GNU General Public License version 2 only, as 7240616Sjimharris * published by the Free Software Foundation. 8240616Sjimharris * 9240616Sjimharris * This code is distributed in the hope that it will be useful, but WITHOUT 10240616Sjimharris * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11240616Sjimharris * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12240616Sjimharris * version 2 for more details (a copy is included in the LICENSE file that 13240616Sjimharris * accompanied this code). 14240616Sjimharris * 15240616Sjimharris * You should have received a copy of the GNU General Public License version 16240616Sjimharris * 2 along with this work; if not, write to the Free Software Foundation, 17240616Sjimharris * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18240616Sjimharris * 19240616Sjimharris * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20240616Sjimharris * or visit www.oracle.com if you need additional information or have any 21240616Sjimharris * questions. 22240616Sjimharris */ 23240616Sjimharrispackage org.graalvm.compiler.jtt.micro; 24240616Sjimharris 25240616Sjimharrisimport org.junit.Before; 26240616Sjimharrisimport org.junit.Test; 27240616Sjimharris 28240616Sjimharrisimport org.graalvm.compiler.jtt.JTTTest; 29240616Sjimharris 30240616Sjimharris/* 31240616Sjimharris */ 32240616Sjimharrispublic class InvokeInterface_01 extends JTTTest { 33240616Sjimharris 34240616Sjimharris interface I { 35240616Sjimharris 36252271Sjimharris int plus(int a); 37252271Sjimharris } 38249422Sjimharris 39249422Sjimharris abstract static class A implements I { 40240616Sjimharris 41249422Sjimharris @Override 42249422Sjimharris public int plus(int a) { 43249422Sjimharris return a; 44240616Sjimharris } 45240616Sjimharris } 46240616Sjimharris 47240616Sjimharris static class C1 extends A { 48240616Sjimharris } 49240616Sjimharris 50252271Sjimharris static class C2 extends A { 51252271Sjimharris } 52240616Sjimharris 53240616Sjimharris static class C3 extends A { 54240616Sjimharris } 55240616Sjimharris 56240616Sjimharris static class C4 extends A { 57240616Sjimharris } 58240616Sjimharris 59240616Sjimharris static class C5 extends A { 60240616Sjimharris } 61240616Sjimharris 62240616Sjimharris static class C6 extends A { 63240616Sjimharris } 64240616Sjimharris 65240616Sjimharris static class C7 extends A { 66240616Sjimharris } 67240616Sjimharris 68240616Sjimharris static class C8 extends A { 69240616Sjimharris } 70240616Sjimharris 71240616Sjimharris static class C9 extends A { 72240616Sjimharris } 73240616Sjimharris 74240616Sjimharris static class C10 extends A { 75240616Sjimharris } 76240616Sjimharris 77240616Sjimharris static class C11 extends A { 78240616Sjimharris } 79240616Sjimharris 80240616Sjimharris static class C12 extends A { 81240616Sjimharris } 82240616Sjimharris 83240616Sjimharris static class C13 extends A { 84240616Sjimharris } 85240616Sjimharris 86240616Sjimharris static class C14 extends A { 87240616Sjimharris } 88240616Sjimharris 89240616Sjimharris static class C15 extends A { 90240616Sjimharris } 91240616Sjimharris 92240616Sjimharris public static int test(I i, int a) { 93240616Sjimharris return i.plus(a); 94240616Sjimharris } 95240616Sjimharris 96240616Sjimharris @Before 97240616Sjimharris public void setUp() { 98240616Sjimharris I[] x = new I[]{new C1(), new C2(), new C3(), new C4(), new C5(), new C6(), new C7(), new C8(), new C9(), new C10(), new C11(), new C12(), new C13(), new C14(), new C15()}; 99240616Sjimharris int a = 0; 100240616Sjimharris for (I i : x) { 101240616Sjimharris i.plus(a++); 102240616Sjimharris } 103240616Sjimharris } 104240616Sjimharris 105240616Sjimharris @Test 106240616Sjimharris public void run0() throws Throwable { 107240616Sjimharris runTest("test", new C1(), 0); 108240616Sjimharris } 109240616Sjimharris 110240616Sjimharris @Test 111240616Sjimharris public void run1() throws Throwable { 112240616Sjimharris runTest("test", new C2(), 1); 113240616Sjimharris } 114240616Sjimharris 115240616Sjimharris} 116240616Sjimharris