1/*
2 * Copyright (C) 2012 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/**
18 * Create a hierarchy of interfaces to check if that overflows the LinearAlloc
19 * with iftable entries.
20 */
21public class Main {
22    interface A1 {}
23    interface A2 {}
24    interface A3 {}
25    interface A4 {}
26    interface A5 {}
27
28    interface B1 extends A1, A2, A3, A4, A5 {}
29    interface B2 extends A1, A2, A3, A4, A5 {}
30    interface B3 extends A1, A2, A3, A4, A5 {}
31    interface B4 extends A1, A2, A3, A4, A5 {}
32    interface B5 extends A1, A2, A3, A4, A5 {}
33
34    interface C1 extends B1, B2, B3, B4, B5 {}
35    interface C2 extends B1, B2, B3, B4, B5 {}
36    interface C3 extends B1, B2, B3, B4, B5 {}
37    interface C4 extends B1, B2, B3, B4, B5 {}
38    interface C5 extends B1, B2, B3, B4, B5 {}
39
40    interface D1 extends C1, C2, C3, C4, C5 {}
41    interface D2 extends C1, C2, C3, C4, C5 {}
42    interface D3 extends C1, C2, C3, C4, C5 {}
43    interface D4 extends C1, C2, C3, C4, C5 {}
44    interface D5 extends C1, C2, C3, C4, C5 {}
45
46    interface E1 extends D1, D2, D3, D4, D5 {}
47    interface E2 extends D1, D2, D3, D4, D5 {}
48    interface E3 extends D1, D2, D3, D4, D5 {}
49    interface E4 extends D1, D2, D3, D4, D5 {}
50    interface E5 extends D1, D2, D3, D4, D5 {}
51
52    interface F1 extends E1, E2, E3, E4, E5 {}
53    interface F2 extends E1, E2, E3, E4, E5 {}
54    interface F3 extends E1, E2, E3, E4, E5 {}
55    interface F4 extends E1, E2, E3, E4, E5 {}
56    interface F5 extends E1, E2, E3, E4, E5 {}
57
58    interface G1 extends F1, F2, F3, F4, F5 {}
59    interface G2 extends F1, F2, F3, F4, F5 {}
60    interface G3 extends F1, F2, F3, F4, F5 {}
61    interface G4 extends F1, F2, F3, F4, F5 {}
62    interface G5 extends F1, F2, F3, F4, F5 {}
63
64    interface H1 extends G1, G2, G3, G4, G5 {}
65    interface H2 extends G1, G2, G3, G4, G5 {}
66    interface H3 extends G1, G2, G3, G4, G5 {}
67    interface H4 extends G1, G2, G3, G4, G5 {}
68    interface H5 extends G1, G2, G3, G4, G5 {}
69
70    interface Z extends H1, H2, H3, H4, H5 {}
71
72    public static void main(String[] args) {
73        Z instance = new Z() {};
74        System.out.println("A new instance of Z was created successfully");
75    }
76}
77