Root Zanli
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
go
/
pkg
/
mod
/
google.golang.org
/
protobuf@v1.35.2
/
proto
/
Filename :
validate_test.go
back
Copy
// Copyright 2019 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package proto_test import ( "fmt" "testing" "google.golang.org/protobuf/internal/impl" piface "google.golang.org/protobuf/runtime/protoiface" ) // TestValidate tests the internal message validator. // // Despite being more properly associated with the internal/impl package, // it is located here to take advantage of the test wire encoder/decoder inputs. func TestValidateValid(t *testing.T) { for _, test := range testValidMessages { for _, m := range test.decodeTo { t.Run(fmt.Sprintf("%s (%T)", test.desc, m), func(t *testing.T) { mt := m.ProtoReflect().Type() want := impl.ValidationValid if test.validationStatus != 0 { want = test.validationStatus } out, status := impl.Validate(mt, piface.UnmarshalInput{ Buf: test.wire, }) if status != want { t.Errorf("Validate(%x) = %v, want %v", test.wire, status, want) } if got, want := (out.Flags&piface.UnmarshalInitialized != 0), !test.partial; got != want && !test.nocheckValidInit && status == impl.ValidationValid { t.Errorf("Validate(%x): initialized = %v, want %v", test.wire, got, want) } }) } } } func TestValidateInvalid(t *testing.T) { for _, test := range testInvalidMessages { for _, m := range test.decodeTo { t.Run(fmt.Sprintf("%s (%T)", test.desc, m), func(t *testing.T) { mt := m.ProtoReflect().Type() _, got := impl.Validate(mt, piface.UnmarshalInput{ Buf: test.wire, }) want := impl.ValidationInvalid if got != want { t.Errorf("Validate(%x) = %v, want %v", test.wire, got, want) } }) } } }