1*57f04c0eSAndrew Rist#**************************************************************
2*57f04c0eSAndrew Rist#
3*57f04c0eSAndrew Rist#  Licensed to the Apache Software Foundation (ASF) under one
4*57f04c0eSAndrew Rist#  or more contributor license agreements.  See the NOTICE file
5*57f04c0eSAndrew Rist#  distributed with this work for additional information
6*57f04c0eSAndrew Rist#  regarding copyright ownership.  The ASF licenses this file
7*57f04c0eSAndrew Rist#  to you under the Apache License, Version 2.0 (the
8*57f04c0eSAndrew Rist#  "License"); you may not use this file except in compliance
9*57f04c0eSAndrew Rist#  with the License.  You may obtain a copy of the License at
10*57f04c0eSAndrew Rist#
11*57f04c0eSAndrew Rist#    http://www.apache.org/licenses/LICENSE-2.0
12*57f04c0eSAndrew Rist#
13*57f04c0eSAndrew Rist#  Unless required by applicable law or agreed to in writing,
14*57f04c0eSAndrew Rist#  software distributed under the License is distributed on an
15*57f04c0eSAndrew Rist#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*57f04c0eSAndrew Rist#  KIND, either express or implied.  See the License for the
17*57f04c0eSAndrew Rist#  specific language governing permissions and limitations
18*57f04c0eSAndrew Rist#  under the License.
19*57f04c0eSAndrew Rist#
20*57f04c0eSAndrew Rist#**************************************************************
21cdf0e10cSrcweir
22cdf0e10cSrcweirEXPECT FAILURE "interfaceinheritance.tests 1":
23cdf0e10cSrcweirinterface Base {};
24cdf0e10cSrcweirinterface Derived {
25cdf0e10cSrcweir    interface Base;
26cdf0e10cSrcweir    interface Base;
27cdf0e10cSrcweir};
28cdf0e10cSrcweir
29cdf0e10cSrcweir
30cdf0e10cSrcweirEXPECT FAILURE "interfaceinheritance.tests 2":
31cdf0e10cSrcweirinterface Base {};
32cdf0e10cSrcweirinterface Derived {
33cdf0e10cSrcweir    interface Base;
34cdf0e10cSrcweir    [optional] interface Base;
35cdf0e10cSrcweir};
36cdf0e10cSrcweir
37cdf0e10cSrcweir
38cdf0e10cSrcweirEXPECT FAILURE "interfaceinheritance.tests 3":
39cdf0e10cSrcweirinterface Base {};
40cdf0e10cSrcweirinterface Derived {
41cdf0e10cSrcweir    [optional] interface Base;
42cdf0e10cSrcweir    interface Base;
43cdf0e10cSrcweir};
44cdf0e10cSrcweir
45cdf0e10cSrcweir
46cdf0e10cSrcweirEXPECT FAILURE "interfaceinheritance.tests 4":
47cdf0e10cSrcweirinterface Base {};
48cdf0e10cSrcweirinterface Derived {
49cdf0e10cSrcweir    [optional] interface Base;
50cdf0e10cSrcweir    [optional] interface Base;
51cdf0e10cSrcweir};
52cdf0e10cSrcweir
53cdf0e10cSrcweir
54cdf0e10cSrcweirEXPECT FAILURE "interfaceinheritance.tests 5":
55cdf0e10cSrcweirinterface Base1 {};
56cdf0e10cSrcweirinterface Base2: Base1 {};
57cdf0e10cSrcweirinterface Derived {
58cdf0e10cSrcweir    interface Base1;
59cdf0e10cSrcweir    interface Base2;
60cdf0e10cSrcweir};
61cdf0e10cSrcweir
62cdf0e10cSrcweir
63cdf0e10cSrcweirEXPECT FAILURE "interfaceinheritance.tests 6":
64cdf0e10cSrcweirinterface Base1 {};
65cdf0e10cSrcweirinterface Base2: Base1 {};
66cdf0e10cSrcweirinterface Derived {
67cdf0e10cSrcweir    interface Base2;
68cdf0e10cSrcweir    interface Base1;
69cdf0e10cSrcweir};
70cdf0e10cSrcweir
71cdf0e10cSrcweir
72cdf0e10cSrcweirEXPECT FAILURE "interfaceinheritance.tests 7":
73cdf0e10cSrcweirinterface Base1 {};
74cdf0e10cSrcweirinterface Base2: Base1 {};
75cdf0e10cSrcweirinterface Derived {
76cdf0e10cSrcweir    [optional] interface Base1;
77cdf0e10cSrcweir    interface Base2;
78cdf0e10cSrcweir};
79cdf0e10cSrcweir
80cdf0e10cSrcweir
81cdf0e10cSrcweirEXPECT FAILURE "interfaceinheritance.tests 8":
82cdf0e10cSrcweirinterface Base1 {};
83cdf0e10cSrcweirinterface Base2: Base1 {};
84cdf0e10cSrcweirinterface Derived {
85cdf0e10cSrcweir    interface Base2;
86cdf0e10cSrcweir    [optional] interface Base1;
87cdf0e10cSrcweir};
88cdf0e10cSrcweir
89cdf0e10cSrcweir
90cdf0e10cSrcweirEXPECT SUCCESS "interfaceinheritance.tests 9":
91cdf0e10cSrcweirinterface Base1 {};
92cdf0e10cSrcweirinterface Base2: Base1 {};
93cdf0e10cSrcweirinterface Derived {
94cdf0e10cSrcweir    interface Base1;
95cdf0e10cSrcweir    [optional] interface Base2;
96cdf0e10cSrcweir};
97cdf0e10cSrcweir
98cdf0e10cSrcweir
99cdf0e10cSrcweirEXPECT SUCCESS "interfaceinheritance.tests 10":
100cdf0e10cSrcweirinterface Base1 {};
101cdf0e10cSrcweirinterface Base2: Base1 {};
102cdf0e10cSrcweirinterface Derived {
103cdf0e10cSrcweir    [optional] interface Base2;
104cdf0e10cSrcweir    interface Base1;
105cdf0e10cSrcweir};
106cdf0e10cSrcweir
107cdf0e10cSrcweir
108cdf0e10cSrcweirEXPECT SUCCESS "interfaceinheritance.tests 11":
109cdf0e10cSrcweirinterface Base1 {};
110cdf0e10cSrcweirinterface Base2: Base1 {};
111cdf0e10cSrcweirinterface Derived {
112cdf0e10cSrcweir    [optional] interface Base1;
113cdf0e10cSrcweir    [optional] interface Base2;
114cdf0e10cSrcweir};
115cdf0e10cSrcweir
116cdf0e10cSrcweir
117cdf0e10cSrcweirEXPECT SUCCESS "interfaceinheritance.tests 12":
118cdf0e10cSrcweirinterface Base1 {};
119cdf0e10cSrcweirinterface Base2: Base1 {};
120cdf0e10cSrcweirinterface Derived {
121cdf0e10cSrcweir    [optional] interface Base2;
122cdf0e10cSrcweir    [optional] interface Base1;
123cdf0e10cSrcweir};
124cdf0e10cSrcweir
125cdf0e10cSrcweir
126cdf0e10cSrcweirEXPECT SUCCESS "interfaceinheritance.tests 13":
127cdf0e10cSrcweirinterface Base1 {};
128cdf0e10cSrcweirinterface Base2 { [optional] interface Base1; };
129cdf0e10cSrcweirinterface Derived {
130cdf0e10cSrcweir    interface Base1;
131cdf0e10cSrcweir    interface Base2;
132cdf0e10cSrcweir};
133cdf0e10cSrcweir
134cdf0e10cSrcweir
135cdf0e10cSrcweirEXPECT SUCCESS "interfaceinheritance.tests 14":
136cdf0e10cSrcweirinterface Base1 {};
137cdf0e10cSrcweirinterface Base2 { [optional] interface Base1; };
138cdf0e10cSrcweirinterface Derived {
139cdf0e10cSrcweir    interface Base2;
140cdf0e10cSrcweir    interface Base1;
141cdf0e10cSrcweir};
142cdf0e10cSrcweir
143cdf0e10cSrcweir
144cdf0e10cSrcweirEXPECT FAILURE "interfaceinheritance.tests 15":
145cdf0e10cSrcweirinterface Base1 {};
146cdf0e10cSrcweirinterface Base2 { [optional] interface Base1; };
147cdf0e10cSrcweirinterface Derived {
148cdf0e10cSrcweir    [optional] interface Base1;
149cdf0e10cSrcweir    interface Base2;
150cdf0e10cSrcweir};
151cdf0e10cSrcweir
152cdf0e10cSrcweir
153cdf0e10cSrcweirEXPECT FAILURE "interfaceinheritance.tests 16":
154cdf0e10cSrcweirinterface Base1 {};
155cdf0e10cSrcweirinterface Base2 { [optional] interface Base1; };
156cdf0e10cSrcweirinterface Derived {
157cdf0e10cSrcweir    interface Base2;
158cdf0e10cSrcweir    [optional] interface Base1;
159cdf0e10cSrcweir};
160cdf0e10cSrcweir
161cdf0e10cSrcweir
162cdf0e10cSrcweirEXPECT SUCCESS "interfaceinheritance.tests 17":
163cdf0e10cSrcweirinterface Base1 {};
164cdf0e10cSrcweirinterface Base2 { [optional] interface Base1; };
165cdf0e10cSrcweirinterface Derived {
166cdf0e10cSrcweir    interface Base1;
167cdf0e10cSrcweir    [optional] interface Base2;
168cdf0e10cSrcweir};
169cdf0e10cSrcweir
170cdf0e10cSrcweir
171cdf0e10cSrcweirEXPECT SUCCESS "interfaceinheritance.tests 18":
172cdf0e10cSrcweirinterface Base1 {};
173cdf0e10cSrcweirinterface Base2 { [optional] interface Base1; };
174cdf0e10cSrcweirinterface Derived {
175cdf0e10cSrcweir    [optional] interface Base2;
176cdf0e10cSrcweir    interface Base1;
177cdf0e10cSrcweir};
178cdf0e10cSrcweir
179cdf0e10cSrcweir
180cdf0e10cSrcweirEXPECT SUCCESS "interfaceinheritance.tests 19":
181cdf0e10cSrcweirinterface Base1 {};
182cdf0e10cSrcweirinterface Base2 { [optional] interface Base1; };
183cdf0e10cSrcweirinterface Derived {
184cdf0e10cSrcweir    [optional] interface Base1;
185cdf0e10cSrcweir    [optional] interface Base2;
186cdf0e10cSrcweir};
187cdf0e10cSrcweir
188cdf0e10cSrcweir
189cdf0e10cSrcweirEXPECT SUCCESS "interfaceinheritance.tests 20":
190cdf0e10cSrcweirinterface Base1 {};
191cdf0e10cSrcweirinterface Base2 { [optional] interface Base1; };
192cdf0e10cSrcweirinterface Derived {
193cdf0e10cSrcweir    [optional] interface Base2;
194cdf0e10cSrcweir    [optional] interface Base1;
195cdf0e10cSrcweir};
196cdf0e10cSrcweir
197cdf0e10cSrcweir
198cdf0e10cSrcweirEXPECT SUCCESS "interfaceinheritance.tests 21":
199cdf0e10cSrcweirinterface Base1 {};
200cdf0e10cSrcweirinterface Base2: Base1 {};
201cdf0e10cSrcweirinterface Base3: Base1 {};
202cdf0e10cSrcweirinterface Derived {
203cdf0e10cSrcweir    interface Base2;
204cdf0e10cSrcweir    interface Base3;
205cdf0e10cSrcweir};
206cdf0e10cSrcweir
207cdf0e10cSrcweir
208cdf0e10cSrcweirEXPECT SUCCESS "interfaceinheritance.tests 22":
209cdf0e10cSrcweirinterface Base1 {};
210cdf0e10cSrcweirinterface Base2: Base1 {};
211cdf0e10cSrcweirinterface Base3: Base1 {};
212cdf0e10cSrcweirinterface Derived {
213cdf0e10cSrcweir    [optional] interface Base2;
214cdf0e10cSrcweir    interface Base3;
215cdf0e10cSrcweir};
216cdf0e10cSrcweir
217cdf0e10cSrcweir
218cdf0e10cSrcweirEXPECT SUCCESS "interfaceinheritance.tests 23":
219cdf0e10cSrcweirinterface Base1 {};
220cdf0e10cSrcweirinterface Base2: Base1 {};
221cdf0e10cSrcweirinterface Base3: Base1 {};
222cdf0e10cSrcweirinterface Derived {
223cdf0e10cSrcweir    interface Base2;
224cdf0e10cSrcweir    [optional] interface Base3;
225cdf0e10cSrcweir};
226cdf0e10cSrcweir
227cdf0e10cSrcweir
228cdf0e10cSrcweirEXPECT SUCCESS "interfaceinheritance.tests 24":
229cdf0e10cSrcweirinterface Base1 {};
230cdf0e10cSrcweirinterface Base2: Base1 {};
231cdf0e10cSrcweirinterface Base3: Base1 {};
232cdf0e10cSrcweirinterface Derived {
233cdf0e10cSrcweir    [optional] interface Base2;
234cdf0e10cSrcweir    [optional] interface Base3;
235cdf0e10cSrcweir};
236cdf0e10cSrcweir
237cdf0e10cSrcweir
238cdf0e10cSrcweirEXPECT SUCCESS "interfaceinheritance.tests 25":
239cdf0e10cSrcweirinterface Base {};
240cdf0e10cSrcweirinterface Derived {
241cdf0e10cSrcweir    [optional] interface Base;
242cdf0e10cSrcweir};
243cdf0e10cSrcweir
244cdf0e10cSrcweir
245cdf0e10cSrcweirEXPECT FAILURE "interfaceinheritance.tests 26":
246cdf0e10cSrcweirinterface Base;
247cdf0e10cSrcweirinterface Derived {
248cdf0e10cSrcweir    interface Base;
249cdf0e10cSrcweir};
250cdf0e10cSrcweir
251cdf0e10cSrcweir
252cdf0e10cSrcweirEXPECT FAILURE "interfaceinheritance.tests 27":
253cdf0e10cSrcweirinterface Base;
254cdf0e10cSrcweirinterface Derived {
255cdf0e10cSrcweir    [optional] interface Base;
256cdf0e10cSrcweir};
257cdf0e10cSrcweir
258cdf0e10cSrcweir
259cdf0e10cSrcweirEXPECT FAILURE "interfaceinheritance.tests 28":
260cdf0e10cSrcweirinterface Base {};
261cdf0e10cSrcweirtypedef Base Hidden;
262cdf0e10cSrcweirinterface Derived {
263cdf0e10cSrcweir    interface Base;
264cdf0e10cSrcweir    interface Hidden;
265cdf0e10cSrcweir};
266cdf0e10cSrcweir
267cdf0e10cSrcweir
268cdf0e10cSrcweirEXPECT FAILURE "interfaceinheritance.tests 29":
269cdf0e10cSrcweirinterface Base {};
270cdf0e10cSrcweirtypedef Base Hidden;
271cdf0e10cSrcweirinterface Derived {
272cdf0e10cSrcweir    interface Hidden;
273cdf0e10cSrcweir    interface Base;
274cdf0e10cSrcweir};
275