blob: 6f1efc76b3a5c689c3618397bdaec9f9cabfe3f4 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fidljstest;
enum Blorp : int8 {
ALPHA = 1;
BETA = 2;
GAMMA = 0x48;
};
// A struct of basic types, some with defaults and some without to test various
// paths of the generator.
struct BasicStruct {
bool b;
int8 i8;
int16 i16 = 18;
int32 i32;
uint8 u8;
uint16 u16;
uint32 u32 = 4000000000;
};
const uint64 ARRRR_SIZE = 32;
struct StuffAndThings {
int32 count;
string id;
vector<int32> a_vector;
BasicStruct basic;
string later_string;
array<int32>:ARRRR_SIZE arrrr;
};
struct StructWithBool {
bool some_bool = false;
};
struct StructWithUint {
uint32 num;
};
struct LargerStructWithArray {
array<int32>:32 components;
};
union UnionOfStructs {
StructWithBool swb;
StructWithUint swu;
LargerStructWithArray lswa;
};
struct StructOfMultipleUnions {
UnionOfStructs initial;
UnionOfStructs? optional;
UnionOfStructs trailing;
};
struct DefaultUsingIdentifier {
Blorp blorp_defaulting_to_beta = BETA;
};
struct VectorsOfPrimitives {
vector<bool> v_bool;
vector<uint8> v_uint8;
vector<uint16> v_uint16;
vector<uint32> v_uint32;
vector<uint64> v_uint64;
vector<int8> v_int8;
vector<int16> v_int16;
vector<int32> v_int32;
vector<int64> v_int64;
vector<float32> v_float32;
vector<float64> v_float64;
};
interface Testola {
1: DoSomething();
2: PrintInt(int32 num);
3: PrintMsg(string msg);
4: VariousArgs(Blorp blorp, string:32 msg, vector<uint32> stuff);
5: WithResponse(int32 a, int32 b) -> (int32 sum);
6: SendAStruct(BasicStruct basic);
7: NestedStructsWithResponse(BasicStruct basic) -> (StuffAndThings resp);
8: PassHandles(handle<job> job) -> (handle<debuglog> debuglog);
9: ReceiveUnions(StructOfMultipleUnions somu);
10: SendUnions() -> (StructOfMultipleUnions somu);
11: SendVectorsOfString(vector<string> unsized,
vector<string?> nullable,
vector<string:10> max_strlen);
12: VectorOfStruct(vector<StructWithUint> stuff)
-> (vector<StructWithUint> result);
13: PassVectorOfPrimitives(VectorsOfPrimitives input)
-> (VectorsOfPrimitives output);
};