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