| // Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| // |
| // Code generated by tools/fidl/gidl-conformance-suite/regen.sh; DO NOT EDIT. |
| |
| // +build fuchsia |
| |
| // |
| package fidl_test |
| |
| import ( |
| "reflect" |
| "testing" |
| |
| "syscall/zx/fidl" |
| "syscall/zx/fidl/conformance" |
| ) |
| |
| func TestAllSuccessCases(t *testing.T) { |
| |
| { |
| var v1 conformance.EmptyStruct |
| |
| successCase{ |
| name: "EmptyStruct", |
| input: &v1, |
| bytes: []byte{ |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| }, |
| }.check(t) |
| } |
| |
| { |
| var v1 conformance.EmptyStructSandwich |
| v2 := "before" |
| v1.Before = v2 |
| var v3 conformance.EmptyStruct |
| v1.Es = v3 |
| v4 := "after" |
| v1.After = v4 |
| |
| successCase{ |
| name: "EmptyStructSandwich", |
| input: &v1, |
| bytes: []byte{ |
| 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x00, 0x00, |
| 0x61, 0x66, 0x74, 0x65, 0x72, 0x00, 0x00, 0x00, |
| }, |
| }.check(t) |
| } |
| |
| { |
| var v1 conformance.Uint8Uint16Uint32Uint64 |
| var v2 uint8 = 1 |
| v1.F1 = v2 |
| var v3 uint16 = 515 |
| v1.F2 = v3 |
| var v4 uint32 = 67438087 |
| v1.F3 = v4 |
| var v5 uint64 = 579005069656919567 |
| v1.F4 = v5 |
| |
| successCase{ |
| name: "Uint8Uint16Uint32Uint64", |
| input: &v1, |
| bytes: []byte{ |
| 0x01, 0x00, 0x03, 0x02, 0x07, 0x06, 0x05, 0x04, |
| 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x0a, 0x09, 0x08, |
| }, |
| }.check(t) |
| } |
| |
| { |
| var v1 conformance.Uint64Uint32Uint16Uint8 |
| var v2 uint64 = 579005069656919567 |
| v1.F1 = v2 |
| var v3 uint32 = 67438087 |
| v1.F2 = v3 |
| var v4 uint16 = 515 |
| v1.F3 = v4 |
| var v5 uint8 = 1 |
| v1.F4 = v5 |
| |
| successCase{ |
| name: "Uint64Uint32Uint16Uint8", |
| input: &v1, |
| bytes: []byte{ |
| 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x0a, 0x09, 0x08, |
| 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, |
| }, |
| }.check(t) |
| } |
| |
| { |
| var v1 conformance.StructOfSimpleTable |
| var v2 conformance.SimpleTable |
| v1.Table = v2 |
| |
| successCase{ |
| name: "SimpleTableEmpty", |
| input: &v1, |
| bytes: []byte{ |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| }, |
| }.check(t) |
| } |
| |
| { |
| var v1 conformance.StructOfSimpleTable |
| var v2 conformance.SimpleTable |
| var v3 int64 = 42 |
| v2.SetX(v3) |
| var v4 int64 = 67 |
| v2.SetY(v4) |
| v1.Table = v2 |
| |
| successCase{ |
| name: "SimpleTableXAndY", |
| input: &v1, |
| bytes: []byte{ |
| 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| }, |
| }.check(t) |
| } |
| |
| { |
| var v1 conformance.StructOfSimpleTable |
| var v2 conformance.SimpleTable |
| var v3 int64 = 67 |
| v2.SetY(v3) |
| v1.Table = v2 |
| |
| successCase{ |
| name: "SimpleTableJustY", |
| input: &v1, |
| bytes: []byte{ |
| 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| }, |
| }.check(t) |
| } |
| |
| { |
| var v1 conformance.StructOfTableWithStringAndVector |
| var v2 conformance.TableWithStringAndVector |
| v3 := "hello" |
| v2.SetFoo(v3) |
| var v4 int32 = 27 |
| v2.SetBar(v4) |
| v1.Table = v2 |
| |
| successCase{ |
| name: "TableWithStringAndVectorNoVectorContent", |
| input: &v1, |
| bytes: []byte{ |
| 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x00, 0x00, 0x00, |
| 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| }, |
| }.check(t) |
| } |
| |
| { |
| var v1 conformance.SimpleTableThenUint64 |
| var v2 conformance.SimpleTable |
| var v3 int64 = 42 |
| v2.SetX(v3) |
| var v4 int64 = 67 |
| v2.SetY(v4) |
| v1.Table = v2 |
| var v5 uint64 = 16045690984833335023 |
| v1.Number = v5 |
| |
| successCase{ |
| name: "SimpleTableThenUint64", |
| input: &v1, |
| bytes: []byte{ |
| 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0xef, 0xbe, 0xad, 0xde, 0xef, 0xbe, 0xad, 0xde, |
| 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| }, |
| }.check(t) |
| } |
| |
| { |
| var v1 conformance.TestInlineXUnionInStruct |
| v2 := "before" |
| v1.Before = v2 |
| var v3 conformance.SampleXUnion |
| var v4 uint32 = 3735928559 |
| v3.SetU(v4) |
| v1.Xu = v3 |
| v5 := "after" |
| v1.After = v5 |
| |
| successCase{ |
| name: "InlineXUnionInStruct", |
| input: &v1, |
| bytes: []byte{ |
| 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0xb2, 0x56, 0x9c, 0x38, 0x00, 0x00, 0x00, 0x00, |
| 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x00, 0x00, |
| 0xef, 0xbe, 0xad, 0xde, 0x00, 0x00, 0x00, 0x00, |
| 0x61, 0x66, 0x74, 0x65, 0x72, 0x00, 0x00, 0x00, |
| }, |
| }.check(t) |
| } |
| |
| { |
| var v1 conformance.TestOptionalXUnionInStruct |
| v2 := "before" |
| v1.Before = v2 |
| v3 := "after" |
| v1.After = v3 |
| |
| successCase{ |
| name: "OptionalXUnionInStructAbsent", |
| input: &v1, |
| bytes: []byte{ |
| 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x00, 0x00, |
| 0x61, 0x66, 0x74, 0x65, 0x72, 0x00, 0x00, 0x00, |
| }, |
| }.check(t) |
| } |
| |
| { |
| var v1 conformance.TestOptionalXUnionInStruct |
| v2 := "before" |
| v1.Before = v2 |
| var v3 conformance.SampleXUnion |
| var v4 uint32 = 3735928559 |
| v3.SetU(v4) |
| v1.Xu = &v3 |
| v5 := "after" |
| v1.After = v5 |
| |
| successCase{ |
| name: "OptionalXUnionInStructPresent", |
| input: &v1, |
| bytes: []byte{ |
| 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0xb2, 0x56, 0x9c, 0x38, 0x00, 0x00, 0x00, 0x00, |
| 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x00, 0x00, |
| 0xef, 0xbe, 0xad, 0xde, 0x00, 0x00, 0x00, 0x00, |
| 0x61, 0x66, 0x74, 0x65, 0x72, 0x00, 0x00, 0x00, |
| }, |
| }.check(t) |
| } |
| |
| { |
| var v1 conformance.TestXUnionInTable |
| var v2 conformance.XUnionInTable |
| v3 := "before" |
| v2.SetBefore(v3) |
| v4 := "after" |
| v2.SetAfter(v4) |
| v1.Value = v2 |
| |
| successCase{ |
| name: "XUnionInTableXUnionAbsent", |
| input: &v1, |
| bytes: []byte{ |
| 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x00, 0x00, |
| 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x61, 0x66, 0x74, 0x65, 0x72, 0x00, 0x00, 0x00, |
| }, |
| }.check(t) |
| } |
| |
| { |
| var v1 conformance.TestXUnionInTable |
| var v2 conformance.XUnionInTable |
| v3 := "before" |
| v2.SetBefore(v3) |
| var v4 conformance.SampleXUnion |
| var v5 uint32 = 3735928559 |
| v4.SetU(v5) |
| v2.SetXu(v4) |
| v6 := "after" |
| v2.SetAfter(v6) |
| v1.Value = v2 |
| |
| successCase{ |
| name: "XUnionInTableXUnionPresent", |
| input: &v1, |
| bytes: []byte{ |
| 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x00, 0x00, |
| 0xb2, 0x56, 0x9c, 0x38, 0x00, 0x00, 0x00, 0x00, |
| 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0xef, 0xbe, 0xad, 0xde, 0x00, 0x00, 0x00, 0x00, |
| 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x61, 0x66, 0x74, 0x65, 0x72, 0x00, 0x00, 0x00, |
| }, |
| }.check(t) |
| } |
| |
| { |
| var v1 conformance.TestAddEthernetDeviceRequest |
| v2 := "@/dev/sys/pci/00:03.0/e1000/ethernet" |
| v1.TopologicalPath = v2 |
| var v3 conformance.InterfaceConfig |
| v4 := "ethp0003" |
| v3.Name = v4 |
| var v5 conformance.IpAddressConfig |
| v6 := true |
| v5.SetDhcp(v6) |
| v3.IpAddressConfig = v5 |
| v1.Config = v3 |
| var v7 uint32 = 4294967295 |
| v1.ThisShouldBeAHandle = v7 |
| |
| successCase{ |
| name: "AddEthernetDeviceRequest", |
| input: &v1, |
| bytes: []byte{ |
| 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, |
| 0x40, 0x2f, 0x64, 0x65, 0x76, 0x2f, 0x73, 0x79, |
| 0x73, 0x2f, 0x70, 0x63, 0x69, 0x2f, 0x30, 0x30, |
| 0x3a, 0x30, 0x33, 0x2e, 0x30, 0x2f, 0x65, 0x31, |
| 0x30, 0x30, 0x30, 0x2f, 0x65, 0x74, 0x68, 0x65, |
| 0x72, 0x6e, 0x65, 0x74, 0x00, 0x00, 0x00, 0x00, |
| 0x65, 0x74, 0x68, 0x70, 0x30, 0x30, 0x30, 0x33, |
| }, |
| }.check(t) |
| } |
| |
| { |
| var v1 conformance.FileGetAttrResponse |
| var v2 int32 = 2125315759 |
| v1.S = v2 |
| var v3 conformance.NodeAttributes |
| var v4 uint32 = 2518909348 |
| v3.Mode = v4 |
| var v5 uint64 = 1 |
| v3.Id = v5 |
| var v6 uint64 = 231 |
| v3.ContentSize = v6 |
| var v7 uint64 = 231 |
| v3.StorageSize = v7 |
| var v8 uint64 = 1 |
| v3.LinkCount = v8 |
| var v9 uint64 = 9833440827789222417 |
| v3.CreationTime = v9 |
| var v10 uint64 = 72038755451251353 |
| v3.ModificationTime = v10 |
| v1.Attributes = v3 |
| |
| successCase{ |
| name: "FileGetAttrResponse", |
| input: &v1, |
| bytes: []byte{ |
| 0xaf, 0xbe, 0xad, 0x7e, 0x00, 0x00, 0x00, 0x00, |
| 0xa4, 0x81, 0x23, 0x96, 0x00, 0x00, 0x00, 0x00, |
| 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, |
| 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0x00, |
| }, |
| }.check(t) |
| } |
| |
| { |
| var v1 conformance.StructWithOptionals |
| var v2 conformance.EmptyStruct |
| v1.S = v2 |
| var v3 conformance.EmptyStruct |
| v1.S2 = &v3 |
| var v4 conformance.TableWithEmptyStruct |
| var v5 conformance.EmptyStruct |
| v4.SetS(v5) |
| v1.T = v4 |
| var v6 conformance.XUnionWithEmptyStruct |
| var v7 conformance.EmptyStruct |
| v6.SetS(v7) |
| v1.Xu = v6 |
| var v8 conformance.XUnionWithEmptyStruct |
| var v9 conformance.EmptyStruct |
| v8.SetS(v9) |
| v1.Xu2 = &v8 |
| var v10 conformance.UnionWithEmptyStruct |
| var v11 conformance.EmptyStruct |
| v10.SetS(v11) |
| v1.U = v10 |
| var v12 conformance.UnionWithEmptyStruct |
| var v13 conformance.EmptyStruct |
| v12.SetS(v13) |
| v1.U2 = &v12 |
| |
| successCase{ |
| name: "Optionals", |
| input: &v1, |
| bytes: []byte{ |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0xfe, 0xe0, 0x99, 0x74, 0x00, 0x00, 0x00, 0x00, |
| 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0xfe, 0xe0, 0x99, 0x74, 0x00, 0x00, 0x00, 0x00, |
| 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| }, |
| }.check(t) |
| } |
| |
| } |
| |
| func TestAllEncodingFailureCases(t *testing.T) { |
| |
| { |
| var v1 conformance.Length2StringWrapper |
| v2 := "abc" |
| v1.Length2String = v2 |
| |
| encodeFailureCase{ |
| name: "StringExceedsLimit", |
| input: &v1, |
| code: fidl.ErrStringTooLong, |
| }.check(t) |
| } |
| |
| } |
| |
| func TestAllDecodingFailureCases(t *testing.T) { |
| |
| { |
| decodeFailureCase{ |
| name: "NonEmptyStringWithNullPtrBody", |
| valTyp: reflect.TypeOf((*conformance.StringWrapper)(nil)), |
| bytes: []byte{ |
| 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| }, |
| code: fidl.ErrUnexpectedNullRef, |
| }.check(t) |
| } |
| |
| } |