| // 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 prototest_test |
| |
| import ( |
| "fmt" |
| "testing" |
| |
| "google.golang.org/protobuf/internal/flags" |
| "google.golang.org/protobuf/proto" |
| "google.golang.org/protobuf/runtime/protoimpl" |
| "google.golang.org/protobuf/testing/prototest" |
| |
| irregularpb "google.golang.org/protobuf/internal/testprotos/irregular" |
| legacypb "google.golang.org/protobuf/internal/testprotos/legacy" |
| legacy1pb "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20160225_2fc053c5" |
| testpb "google.golang.org/protobuf/internal/testprotos/test" |
| _ "google.golang.org/protobuf/internal/testprotos/test/weak1" |
| _ "google.golang.org/protobuf/internal/testprotos/test/weak2" |
| test3pb "google.golang.org/protobuf/internal/testprotos/test3" |
| ) |
| |
| func Test(t *testing.T) { |
| ms := []proto.Message{ |
| (*testpb.TestAllTypes)(nil), |
| (*test3pb.TestAllTypes)(nil), |
| (*testpb.TestRequired)(nil), |
| (*irregularpb.Message)(nil), |
| (*testpb.TestAllExtensions)(nil), |
| (*legacypb.Legacy)(nil), |
| protoimpl.X.MessageOf((*legacy1pb.Message)(nil)).Interface(), |
| } |
| if flags.ProtoLegacy { |
| ms = append(ms, (*testpb.TestWeak)(nil)) |
| } |
| |
| for _, m := range ms { |
| t.Run(fmt.Sprintf("%T", m), func(t *testing.T) { |
| prototest.Message{}.Test(t, m.ProtoReflect().Type()) |
| }) |
| } |
| } |