[gidl][golang] Generated go fidl tests with failure cases
Generated from:
https://fuchsia-review.googlesource.com/c/fuchsia/+/306037
FIDL-557 #comment
Test: these files build, ran conformance tests
Change-Id: I6db5d5424590048031a5688acb5d7882e22dccba
diff --git a/src/syscall/zx/fidl/conformance/impl.go b/src/syscall/zx/fidl/conformance/impl.go
index 69fe7ef..87454b8 100644
--- a/src/syscall/zx/fidl/conformance/impl.go
+++ b/src/syscall/zx/fidl/conformance/impl.go
@@ -242,47 +242,6 @@
return _mStructOfTableWithStringAndVector
}
-type StructWithInt struct {
- _ struct{} `fidl2:"s,4,4"`
- X int32
-}
-
-var _mStructWithInt = _bindings.CreateLazyMarshaler(StructWithInt{})
-
-func (msg *StructWithInt) Marshaler() _bindings.Marshaler {
- return _mStructWithInt
-}
-
-type StructWithArrays struct {
- _ struct{} `fidl2:"s,72,8"`
- ArrEmpty [0]int32
- ArrInt [2]int32
- ArrString [2]string
- ArrStruct [2]StructWithInt
- ArrArrInt [2][3]int32
-}
-
-var _mStructWithArrays = _bindings.CreateLazyMarshaler(StructWithArrays{})
-
-func (msg *StructWithArrays) Marshaler() _bindings.Marshaler {
- return _mStructWithArrays
-}
-
-type StructWithVectors struct {
- _ struct{} `fidl2:"s,80,8"`
- VecEmpty []int32
- VecInt []int32
- VecString []string
- VecStruct []StructWithInt
- VecVecInt [][]int32
-}
-
-var _mStructWithVectors = _bindings.CreateLazyMarshaler(StructWithVectors{})
-
-func (msg *StructWithVectors) Marshaler() _bindings.Marshaler {
- return _mStructWithVectors
-}
-
type SimpleUnionTag uint32
const (
diff --git a/src/syscall/zx/fidl/fidl_test/conformance_test.go b/src/syscall/zx/fidl/fidl_test/conformance_test.go
index 03b4620..b708559 100644
--- a/src/syscall/zx/fidl/fidl_test/conformance_test.go
+++ b/src/syscall/zx/fidl/fidl_test/conformance_test.go
@@ -10,12 +10,15 @@
package fidl_test
import (
+ "reflect"
"testing"
+ "syscall/zx/fidl"
"syscall/zx/fidl/conformance"
)
func TestAllSuccessCases(t *testing.T) {
+
{
var v1 conformance.EmptyStruct
@@ -512,110 +515,36 @@
}.check(t)
}
- {
- var v1 conformance.StructWithArrays
- v2 := [0]int32{}
- v1.ArrEmpty = v2
- var v3 int32 = 1
- var v4 int32 = 2
- v5 := [2]int32{v3, v4}
- v1.ArrInt = v5
- v6 := "a"
- v7 := "b"
- v8 := [2]string{v6, v7}
- v1.ArrString = v8
- var v9 conformance.StructWithInt
- var v10 int32 = 1
- v9.X = v10
- var v11 conformance.StructWithInt
- var v12 int32 = 2
- v11.X = v12
- v13 := [2]conformance.StructWithInt{v9, v11}
- v1.ArrStruct = v13
- var v14 int32 = 1
- var v15 int32 = 2
- var v16 int32 = 3
- v17 := [3]int32{v14, v15, v16}
- var v18 int32 = 4
- var v19 int32 = 5
- var v20 int32 = 6
- v21 := [3]int32{v18, v19, v20}
- v22 := [2][3]int32{v17, v21}
- v1.ArrArrInt = v22
+}
- successCase{
- name: "Arrays",
+func TestAllEncodingFailureCases(t *testing.T) {
+
+ {
+ var v1 conformance.Length2StringWrapper
+ v2 := "abc"
+ v1.Length2String = v2
+
+ encodeFailureCase{
+ name: "StringExceedsLimit",
input: &v1,
- bytes: []byte{
- 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
- 0x01, 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,
- 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
- 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
- 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
- 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- },
+ code: fidl.ErrStringTooLong,
}.check(t)
}
- {
- var v1 conformance.StructWithVectors
- v2 := []int32{}
- v1.VecEmpty = v2
- var v3 int32 = 1
- var v4 int32 = 2
- v5 := []int32{v3, v4}
- v1.VecInt = v5
- v6 := "a"
- v7 := "b"
- v8 := []string{v6, v7}
- v1.VecString = v8
- var v9 conformance.StructWithInt
- var v10 int32 = 1
- v9.X = v10
- v11 := []conformance.StructWithInt{v9}
- v1.VecStruct = v11
- var v12 int32 = 1
- var v13 int32 = 2
- v14 := []int32{v12, v13}
- var v15 int32 = 3
- v16 := []int32{v15}
- v17 := [][]int32{v14, v16}
- v1.VecVecInt = v17
+}
- successCase{
- name: "Vectors",
- input: &v1,
+func TestAllDecodingFailureCases(t *testing.T) {
+
+ {
+ decodeFailureCase{
+ name: "NonEmptyStringWithNullPtrBody",
+ valTyp: reflect.TypeOf((*conformance.StringWrapper)(nil)),
bytes: []byte{
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x02, 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,
- 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
- 0x01, 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,
- 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x02, 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,
- 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
},
+ code: fidl.ErrUnexpectedNullRef,
}.check(t)
}
+
}