| // Copyright 2014 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| |
| [JavaPackage="org.chromium.mojo.bindings.test.mojom.mojo"] |
| module mojo.test; |
| |
| struct StructA { |
| uint64 i; |
| }; |
| |
| struct StructB { |
| StructA struct_a; |
| }; |
| |
| struct StructC { |
| array<uint8> data; |
| }; |
| |
| struct StructD { |
| array<handle<message_pipe>> message_pipes; |
| }; |
| |
| struct StructE { |
| StructD struct_d; |
| handle<data_pipe_consumer> data_pipe_consumer; |
| }; |
| |
| struct StructF { |
| array<uint8, 3> fixed_size_array; |
| }; |
| |
| struct StructG { |
| int32 i; |
| [MinVersion=1] |
| StructA? struct_a; |
| [MinVersion=3] |
| string? str; |
| [MinVersion=3] |
| bool b; |
| }; |
| |
| interface InterfaceA { |
| }; |
| |
| enum EnumA { |
| ENUM_A_0, |
| ENUM_A_1 |
| }; |
| |
| [Extensible] |
| enum EnumB { |
| ENUM_B_0, |
| ENUM_B_1, |
| ENUM_B_2 |
| }; |
| |
| // A non-extensible enum with no values is valid, but about as useless as |
| // you would expect: it will fail validation for all values. |
| enum EmptyEnum {}; |
| |
| [Extensible] |
| enum ExtensibleEmptyEnum {}; |
| |
| union UnionA { |
| StructA struct_a; |
| bool b; |
| }; |
| |
| // This interface is used for testing bounds-checking in the mojom |
| // binding code. If you add a method please update the files |
| // ./data/validation/boundscheck_*. If you add a response please update |
| // ./data/validation/resp_boundscheck_*. |
| interface BoundsCheckTestInterface { |
| Method0(uint8 param0) => (uint8 param0); |
| Method1(uint8 param0); |
| }; |
| |
| interface ConformanceTestInterface { |
| Method0(float param0); |
| Method1(StructA param0); |
| Method2(StructB param0, StructA param1); |
| Method3(array<bool> param0); |
| Method4(StructC param0, array<uint8> param1); |
| Method5(StructE param0, handle<data_pipe_producer> param1); |
| Method6(array<array<uint8>> param0); |
| Method7(StructF param0, array<array<uint8, 3>?, 2> param1); |
| Method8(array<array<string>?> param0); |
| Method9(array<array<handle?>>? param0); |
| Method10(map<string, uint8> param0); |
| Method11(StructG param0); |
| Method12(float param0) => (float param0); |
| Method13(pending_remote<InterfaceA>? param0, uint32 param1, |
| pending_remote<InterfaceA>? param2); |
| Method14(EnumA param0, EnumB param1); |
| Method15(array<EnumA>? param0, array<EnumB>? param1); |
| Method16(map<EnumA, EnumA>? param0); |
| Method17(array<pending_remote<InterfaceA>> param0); |
| Method18(UnionA? param0); |
| Method19(Recursive recursive); |
| Method20(map<StructB, uint8> param0); |
| Method21(ExtensibleEmptyEnum param0); |
| Method22(EmptyEnum param0); |
| Method23(array<bool?> param0, array<uint32?> param1); |
| Method24(map<uint32, bool?> param0, map<uint32, uint64?> param1); |
| }; |
| |
| struct BasicStruct { |
| int32 a; |
| }; |
| |
| interface IntegrationTestInterface { |
| Method0(BasicStruct param0) => (array<uint8> param0); |
| }; |
| |
| // An enum generates a enum-value validation function, so we want to test it. |
| // E.g., valid enum values for this enum should be: -3, 0, 1, 10 |
| enum BasicEnum { |
| A, |
| B, |
| C = A, |
| D = -3, |
| E = 0xA |
| }; |
| |
| // The enum validation function should be generated within the scope of this |
| // struct. |
| struct StructWithEnum { |
| enum EnumWithin { |
| A, B, C, D |
| }; |
| }; |
| |
| // This is used to test that deeply recursive structures don't blow the stack. |
| struct Recursive { |
| Recursive? recursive; |
| }; |