#**************************************************************
#  
#  Licensed to the Apache Software Foundation (ASF) under one
#  or more contributor license agreements.  See the NOTICE file
#  distributed with this work for additional information
#  regarding copyright ownership.  The ASF licenses this file
#  to you under the Apache License, Version 2.0 (the
#  "License"); you may not use this file except in compliance
#  with the License.  You may obtain a copy of the License at
#  
#    http://www.apache.org/licenses/LICENSE-2.0
#  
#  Unless required by applicable law or agreed to in writing,
#  software distributed under the License is distributed on an
#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#  KIND, either express or implied.  See the License for the
#  specific language governing permissions and limitations
#  under the License.
#  
#**************************************************************

EXPECT FAILURE "interfaceinheritance.tests 1":
interface Base {};
interface Derived {
    interface Base;
    interface Base;
};


EXPECT FAILURE "interfaceinheritance.tests 2":
interface Base {};
interface Derived {
    interface Base;
    [optional] interface Base;
};


EXPECT FAILURE "interfaceinheritance.tests 3":
interface Base {};
interface Derived {
    [optional] interface Base;
    interface Base;
};


EXPECT FAILURE "interfaceinheritance.tests 4":
interface Base {};
interface Derived {
    [optional] interface Base;
    [optional] interface Base;
};


EXPECT FAILURE "interfaceinheritance.tests 5":
interface Base1 {};
interface Base2: Base1 {};
interface Derived {
    interface Base1;
    interface Base2;
};


EXPECT FAILURE "interfaceinheritance.tests 6":
interface Base1 {};
interface Base2: Base1 {};
interface Derived {
    interface Base2;
    interface Base1;
};


EXPECT FAILURE "interfaceinheritance.tests 7":
interface Base1 {};
interface Base2: Base1 {};
interface Derived {
    [optional] interface Base1;
    interface Base2;
};


EXPECT FAILURE "interfaceinheritance.tests 8":
interface Base1 {};
interface Base2: Base1 {};
interface Derived {
    interface Base2;
    [optional] interface Base1;
};


EXPECT SUCCESS "interfaceinheritance.tests 9":
interface Base1 {};
interface Base2: Base1 {};
interface Derived {
    interface Base1;
    [optional] interface Base2;
};


EXPECT SUCCESS "interfaceinheritance.tests 10":
interface Base1 {};
interface Base2: Base1 {};
interface Derived {
    [optional] interface Base2;
    interface Base1;
};


EXPECT SUCCESS "interfaceinheritance.tests 11":
interface Base1 {};
interface Base2: Base1 {};
interface Derived {
    [optional] interface Base1;
    [optional] interface Base2;
};


EXPECT SUCCESS "interfaceinheritance.tests 12":
interface Base1 {};
interface Base2: Base1 {};
interface Derived {
    [optional] interface Base2;
    [optional] interface Base1;
};


EXPECT SUCCESS "interfaceinheritance.tests 13":
interface Base1 {};
interface Base2 { [optional] interface Base1; };
interface Derived {
    interface Base1;
    interface Base2;
};


EXPECT SUCCESS "interfaceinheritance.tests 14":
interface Base1 {};
interface Base2 { [optional] interface Base1; };
interface Derived {
    interface Base2;
    interface Base1;
};


EXPECT FAILURE "interfaceinheritance.tests 15":
interface Base1 {};
interface Base2 { [optional] interface Base1; };
interface Derived {
    [optional] interface Base1;
    interface Base2;
};


EXPECT FAILURE "interfaceinheritance.tests 16":
interface Base1 {};
interface Base2 { [optional] interface Base1; };
interface Derived {
    interface Base2;
    [optional] interface Base1;
};


EXPECT SUCCESS "interfaceinheritance.tests 17":
interface Base1 {};
interface Base2 { [optional] interface Base1; };
interface Derived {
    interface Base1;
    [optional] interface Base2;
};


EXPECT SUCCESS "interfaceinheritance.tests 18":
interface Base1 {};
interface Base2 { [optional] interface Base1; };
interface Derived {
    [optional] interface Base2;
    interface Base1;
};


EXPECT SUCCESS "interfaceinheritance.tests 19":
interface Base1 {};
interface Base2 { [optional] interface Base1; };
interface Derived {
    [optional] interface Base1;
    [optional] interface Base2;
};


EXPECT SUCCESS "interfaceinheritance.tests 20":
interface Base1 {};
interface Base2 { [optional] interface Base1; };
interface Derived {
    [optional] interface Base2;
    [optional] interface Base1;
};


EXPECT SUCCESS "interfaceinheritance.tests 21":
interface Base1 {};
interface Base2: Base1 {};
interface Base3: Base1 {};
interface Derived {
    interface Base2;
    interface Base3;
};


EXPECT SUCCESS "interfaceinheritance.tests 22":
interface Base1 {};
interface Base2: Base1 {};
interface Base3: Base1 {};
interface Derived {
    [optional] interface Base2;
    interface Base3;
};


EXPECT SUCCESS "interfaceinheritance.tests 23":
interface Base1 {};
interface Base2: Base1 {};
interface Base3: Base1 {};
interface Derived {
    interface Base2;
    [optional] interface Base3;
};


EXPECT SUCCESS "interfaceinheritance.tests 24":
interface Base1 {};
interface Base2: Base1 {};
interface Base3: Base1 {};
interface Derived {
    [optional] interface Base2;
    [optional] interface Base3;
};


EXPECT SUCCESS "interfaceinheritance.tests 25":
interface Base {};
interface Derived {
    [optional] interface Base;
};


EXPECT FAILURE "interfaceinheritance.tests 26":
interface Base;
interface Derived {
    interface Base;
};


EXPECT FAILURE "interfaceinheritance.tests 27":
interface Base;
interface Derived {
    [optional] interface Base;
};


EXPECT FAILURE "interfaceinheritance.tests 28":
interface Base {};
typedef Base Hidden;
interface Derived {
    interface Base;
    interface Hidden;
};


EXPECT FAILURE "interfaceinheritance.tests 29":
interface Base {};
typedef Base Hidden;
interface Derived {
    interface Hidden;
    interface Base;
};
