| // Copyright 2021 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| module mojo.test.enum_default_unittest.mojom; |
| |
| // Tests for transferring an extensible enum with and without a default |
| // enumerator value over Mojo IPC. |
| [Extensible] |
| enum ExtensibleEnumWithDefault { |
| kZeroth = 0, |
| [Default] kFirst = 1, |
| }; |
| |
| [Extensible] |
| enum ExtensibleEnumWithoutDefault { |
| kZeroth = 0, |
| kFirst = 1, |
| }; |
| |
| struct StructWithExtensibleEnumWithDefault { |
| ExtensibleEnumWithDefault value; |
| }; |
| |
| struct StructWithExtensibleEnumWithoutDefault { |
| ExtensibleEnumWithoutDefault value; |
| }; |
| |
| union UnionWithExtensibleEnumWithDefault { |
| ExtensibleEnumWithDefault value; |
| }; |
| |
| union UnionWithExtensibleEnumWithoutDefault { |
| ExtensibleEnumWithoutDefault value; |
| }; |
| |
| interface TestInterface { |
| EchoWithDefault(ExtensibleEnumWithDefault in) |
| => (ExtensibleEnumWithDefault out); |
| EchoWithoutDefault(ExtensibleEnumWithoutDefault in) |
| => (ExtensibleEnumWithoutDefault out); |
| |
| EchoStructWithDefault(StructWithExtensibleEnumWithDefault in) |
| => (StructWithExtensibleEnumWithDefault out); |
| EchoStructWithoutDefault(StructWithExtensibleEnumWithoutDefault in) |
| => (StructWithExtensibleEnumWithoutDefault out); |
| |
| EchoUnionWithDefault(UnionWithExtensibleEnumWithDefault in) |
| => (UnionWithExtensibleEnumWithDefault out); |
| EchoUnionWithoutDefault(UnionWithExtensibleEnumWithoutDefault in) |
| => (UnionWithExtensibleEnumWithoutDefault out); |
| }; |
| |
| // Tests for initializing enum fields of structs. |
| [Extensible] |
| enum EnumWithoutZeroValue { |
| [Default] kFirst = 1, |
| kSecond = 2, |
| }; |
| |
| struct StructWithoutInitializer { |
| EnumWithoutZeroValue value; |
| }; |
| |
| struct StructWithInitializer { |
| EnumWithoutZeroValue value = kSecond; |
| }; |