mirror of
https://github.com/zap-proto/test.git
synced 2026-10-30 15:03:24 +00:00
203 lines
6.7 KiB
Plaintext
203 lines
6.7 KiB
Plaintext
# Copyright 2013 Andreas Stenius <[email protected]>
|
|
#
|
|
# Licensed 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.
|
|
|
|
@0xa510a585dee47e0b;
|
|
|
|
using Cxx = import "/zap/c++.zap";
|
|
$Cxx.namespace("capnp_test");
|
|
|
|
using Go = import "go.zap";
|
|
$Go.package("capnp_test");
|
|
$Go.import("github.com/kaos/capnp_test");
|
|
|
|
########################################
|
|
## List with all available tests
|
|
########################################
|
|
|
|
const allTests :List(Text) =
|
|
[
|
|
"simpleTest",
|
|
"textListTypeTest",
|
|
"uInt8DefaultValueTest",
|
|
"constTest"
|
|
];
|
|
|
|
|
|
########################################
|
|
## Define test data
|
|
########################################
|
|
|
|
const simpleTestType :Text = "SimpleTestStruct";
|
|
const simpleTest :SimpleTestStruct = (int = 1234567890, msg = "a short message...");
|
|
|
|
const textListTypeTestType :Text = "ListTest";
|
|
const textListTypeTest :ListTest = (textList = ["foo", "bar", "baz"]);
|
|
|
|
const uInt8DefaultValueTestType :Text = "TestDefaults";
|
|
const uInt8DefaultValueTest :TestDefaults = (uInt8Field = 0);
|
|
|
|
const constTestType :Text = "SimpleTestStruct";
|
|
const constTestValue :Text = "A const text test value.";
|
|
const constTest :SimpleTestStruct = (msg = .constTestValue);
|
|
|
|
########################################
|
|
## Types used by tests
|
|
########################################
|
|
|
|
struct SimpleTestStruct {
|
|
int @0 :Int32;
|
|
msg @1 :Text;
|
|
}
|
|
|
|
struct ListTest {
|
|
# union {
|
|
textList @0 :List(Text);
|
|
# nextList @1 :...;
|
|
# }
|
|
}
|
|
|
|
|
|
## Types copied from capnproto/c++/src/test.zap
|
|
|
|
enum TestEnum {
|
|
foo @0;
|
|
bar @1;
|
|
baz @2;
|
|
qux @3;
|
|
quux @4;
|
|
corge @5;
|
|
grault @6;
|
|
garply @7;
|
|
}
|
|
|
|
struct TestAllTypes {
|
|
voidField @0 : Void;
|
|
boolField @1 : Bool;
|
|
int8Field @2 : Int8;
|
|
int16Field @3 : Int16;
|
|
int32Field @4 : Int32;
|
|
int64Field @5 : Int64;
|
|
uInt8Field @6 : UInt8;
|
|
uInt16Field @7 : UInt16;
|
|
uInt32Field @8 : UInt32;
|
|
uInt64Field @9 : UInt64;
|
|
float32Field @10 : Float32;
|
|
float64Field @11 : Float64;
|
|
textField @12 : Text;
|
|
dataField @13 : Data;
|
|
structField @14 : TestAllTypes;
|
|
enumField @15 : TestEnum;
|
|
interfaceField @16 : Void; # TODO
|
|
|
|
voidList @17 : List(Void);
|
|
boolList @18 : List(Bool);
|
|
int8List @19 : List(Int8);
|
|
int16List @20 : List(Int16);
|
|
int32List @21 : List(Int32);
|
|
int64List @22 : List(Int64);
|
|
uInt8List @23 : List(UInt8);
|
|
uInt16List @24 : List(UInt16);
|
|
uInt32List @25 : List(UInt32);
|
|
uInt64List @26 : List(UInt64);
|
|
float32List @27 : List(Float32);
|
|
float64List @28 : List(Float64);
|
|
textList @29 : List(Text);
|
|
dataList @30 : List(Data);
|
|
structList @31 : List(TestAllTypes);
|
|
enumList @32 : List(TestEnum);
|
|
interfaceList @33 : List(Void); # TODO
|
|
}
|
|
|
|
struct TestDefaults {
|
|
voidField @0 : Void = void;
|
|
boolField @1 : Bool = true;
|
|
int8Field @2 : Int8 = -123;
|
|
int16Field @3 : Int16 = -12345;
|
|
int32Field @4 : Int32 = -12345678;
|
|
int64Field @5 : Int64 = -123456789012345;
|
|
uInt8Field @6 : UInt8 = 234;
|
|
uInt16Field @7 : UInt16 = 45678;
|
|
uInt32Field @8 : UInt32 = 3456789012;
|
|
uInt64Field @9 : UInt64 = 12345678901234567890;
|
|
float32Field @10 : Float32 = 1234.5;
|
|
float64Field @11 : Float64 = -123e45;
|
|
textField @12 : Text = "foo";
|
|
dataField @13 : Data = "bar";
|
|
structField @14 : TestAllTypes = (
|
|
voidField = void,
|
|
boolField = true,
|
|
int8Field = -12,
|
|
int16Field = 3456,
|
|
int32Field = -78901234,
|
|
int64Field = 56789012345678,
|
|
uInt8Field = 90,
|
|
uInt16Field = 1234,
|
|
uInt32Field = 56789012,
|
|
uInt64Field = 345678901234567890,
|
|
float32Field = -1.25e-10,
|
|
float64Field = 345,
|
|
textField = "baz",
|
|
dataField = "qux",
|
|
structField = (
|
|
textField = "nested",
|
|
structField = (textField = "really nested")),
|
|
enumField = baz,
|
|
# interfaceField can't have a default
|
|
|
|
voidList = [void, void, void],
|
|
boolList = [false, true, false, true, true],
|
|
int8List = [12, -34, -0x80, 0x7f],
|
|
int16List = [1234, -5678, -0x8000, 0x7fff],
|
|
int32List = [12345678, -90123456, -0x80000000, 0x7fffffff],
|
|
int64List = [123456789012345, -678901234567890, -0x8000000000000000, 0x7fffffffffffffff],
|
|
uInt8List = [12, 34, 0, 0xff],
|
|
uInt16List = [1234, 5678, 0, 0xffff],
|
|
uInt32List = [12345678, 90123456, 0, 0xffffffff],
|
|
uInt64List = [123456789012345, 678901234567890, 0, 0xffffffffffffffff],
|
|
float32List = [0, 1234567, 1e37, -1e37, 1e-37, -1e-37],
|
|
float64List = [0, 123456789012345, 1e306, -1e306, 1e-306, -1e-306],
|
|
textList = ["quux", "corge", "grault"],
|
|
dataList = ["garply", "waldo", "fred"],
|
|
structList = [
|
|
(textField = "x structlist 1"),
|
|
(textField = "x structlist 2"),
|
|
(textField = "x structlist 3")],
|
|
enumList = [qux, bar, grault]
|
|
# interfaceList can't have a default
|
|
);
|
|
enumField @15 : TestEnum = corge;
|
|
interfaceField @16 : Void; # TODO
|
|
|
|
voidList @17 : List(Void) = [void, void, void, void, void, void];
|
|
boolList @18 : List(Bool) = [true, false, false, true];
|
|
int8List @19 : List(Int8) = [111, -111];
|
|
int16List @20 : List(Int16) = [11111, -11111];
|
|
int32List @21 : List(Int32) = [111111111, -111111111];
|
|
int64List @22 : List(Int64) = [1111111111111111111, -1111111111111111111];
|
|
uInt8List @23 : List(UInt8) = [111, 222] ;
|
|
uInt16List @24 : List(UInt16) = [33333, 44444];
|
|
uInt32List @25 : List(UInt32) = [3333333333];
|
|
uInt64List @26 : List(UInt64) = [11111111111111111111];
|
|
float32List @27 : List(Float32) = [5555.5, inf, -inf, nan];
|
|
float64List @28 : List(Float64) = [7777.75, inf, -inf, nan];
|
|
textList @29 : List(Text) = ["plugh", "xyzzy", "thud"];
|
|
dataList @30 : List(Data) = ["oops", "exhausted", "rfc3092"];
|
|
structList @31 : List(TestAllTypes) = [
|
|
(textField = "structlist 1"),
|
|
(textField = "structlist 2"),
|
|
(textField = "structlist 3")];
|
|
enumList @32 : List(TestEnum) = [foo, garply];
|
|
interfaceList @33 : List(Void); # TODO
|
|
}
|