// 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 ( "testing" "google.golang.org/protobuf/proto" testpb "google.golang.org/protobuf/internal/testprotos/test" ) func TestReset(t *testing.T) { m := &testpb.TestAllTypes{ OptionalSfixed64: proto.Int64(5), RepeatedInt32: []int32{}, RepeatedFloat: []float32{1.234, 5.678}, MapFixed64Fixed64: map[uint64]uint64{5: 7}, MapStringString: map[string]string{}, OptionalForeignMessage: &testpb.ForeignMessage{}, OneofField: (*testpb.TestAllTypes_OneofUint32)(nil), OneofOptional: (*testpb.TestAllTypes_OneofOptionalUint32)(nil), } m.ProtoReflect().SetUnknown([]byte{}) proto.Reset(m) if m.OptionalSfixed64 != nil { t.Errorf("m.OptionalSfixed64 = %p, want nil", m.OptionalSfixed64) } if m.RepeatedInt32 != nil { t.Errorf("m.RepeatedInt32 = %p, want nil", m.RepeatedInt32) } if m.RepeatedFloat != nil { t.Errorf("m.RepeatedFloat = %p, want nil", m.RepeatedFloat) } if m.MapFixed64Fixed64 != nil { t.Errorf("m.MapFixed64Fixed64 = %p, want nil", m.MapFixed64Fixed64) } if m.MapStringString != nil { t.Errorf("m.MapStringString = %p, want nil", m.MapStringString) } if m.OptionalForeignMessage != nil { t.Errorf("m.OptionalForeignMessage = %p, want nil", m.OptionalForeignMessage) } if m.OneofField != nil { t.Errorf("m.OneofField = %p, want nil", m.OneofField) } if m.OneofOptional != nil { t.Errorf("m.OneofOptional = %p, want nil", m.OneofOptional) } if got := m.ProtoReflect().GetUnknown(); got != nil { t.Errorf("m.ProtoReflect().GetUnknown() = %d, want nil", got) } }