15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copyright (c) 2011 The Chromium Authors. All rights reserved.
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Use of this source code is governed by a BSD-style license that can be
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * found in the LICENSE file.
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This file will test that the IDL snippet matches the comment.
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)label Chrome {
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  M14 = 1.0,
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  M15 = 2.0
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* struct ist { void* X; }; */
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ist {
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  mem_t X;
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * struct ifaceFoo_1_0 {
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * int8_t (*mem1)(int16_t x, int32_t y);
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * int32_t (*mem2)(const struct ist* a);
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * int32_t (*mem3)(struct ist* b);
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * int32_t (*mem4)(const void** ptr);
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * int32_t (*mem5)(void** ptr);
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * };
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * typedef struct ifaceFoo_1_0 ifaceFoo;
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface ifaceFoo {
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int8_t mem1([in] int16_t x, [in] int32_t y);
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t mem2([in] ist a);
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t mem3([out] ist b);
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t mem4([in] blob_t ptr);
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t mem5([out] blob_t ptr);
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [version=2.0] int32_t mem6([inout] blob_t ptr);
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)interface ifaceBar {
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int8_t testIface([in] ifaceFoo foo, [in] int32_t y);
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ifaceFoo createIface([in] str_t name);
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)[no_interface_string]
45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)interface ifaceNoString {
46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void mem();
47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)};
48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct struct2 {
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ifaceBar bar;
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
53