xref: /aosp_15_r20/external/golang-protobuf/testing/prototest/prototest_test.go (revision 1c12ee1efe575feb122dbf939ff15148a3b3e8f2)
1*1c12ee1eSDan Willemsen// Copyright 2019 The Go Authors. All rights reserved.
2*1c12ee1eSDan Willemsen// Use of this source code is governed by a BSD-style
3*1c12ee1eSDan Willemsen// license that can be found in the LICENSE file.
4*1c12ee1eSDan Willemsen
5*1c12ee1eSDan Willemsenpackage prototest_test
6*1c12ee1eSDan Willemsen
7*1c12ee1eSDan Willemsenimport (
8*1c12ee1eSDan Willemsen	"fmt"
9*1c12ee1eSDan Willemsen	"testing"
10*1c12ee1eSDan Willemsen
11*1c12ee1eSDan Willemsen	"google.golang.org/protobuf/internal/flags"
12*1c12ee1eSDan Willemsen	"google.golang.org/protobuf/proto"
13*1c12ee1eSDan Willemsen	"google.golang.org/protobuf/runtime/protoimpl"
14*1c12ee1eSDan Willemsen	"google.golang.org/protobuf/testing/prototest"
15*1c12ee1eSDan Willemsen
16*1c12ee1eSDan Willemsen	irregularpb "google.golang.org/protobuf/internal/testprotos/irregular"
17*1c12ee1eSDan Willemsen	legacypb "google.golang.org/protobuf/internal/testprotos/legacy"
18*1c12ee1eSDan Willemsen	legacy1pb "google.golang.org/protobuf/internal/testprotos/legacy/proto2_20160225_2fc053c5"
19*1c12ee1eSDan Willemsen	testpb "google.golang.org/protobuf/internal/testprotos/test"
20*1c12ee1eSDan Willemsen	_ "google.golang.org/protobuf/internal/testprotos/test/weak1"
21*1c12ee1eSDan Willemsen	_ "google.golang.org/protobuf/internal/testprotos/test/weak2"
22*1c12ee1eSDan Willemsen	test3pb "google.golang.org/protobuf/internal/testprotos/test3"
23*1c12ee1eSDan Willemsen)
24*1c12ee1eSDan Willemsen
25*1c12ee1eSDan Willemsenfunc Test(t *testing.T) {
26*1c12ee1eSDan Willemsen	ms := []proto.Message{
27*1c12ee1eSDan Willemsen		(*testpb.TestAllTypes)(nil),
28*1c12ee1eSDan Willemsen		(*test3pb.TestAllTypes)(nil),
29*1c12ee1eSDan Willemsen		(*testpb.TestRequired)(nil),
30*1c12ee1eSDan Willemsen		(*irregularpb.Message)(nil),
31*1c12ee1eSDan Willemsen		(*testpb.TestAllExtensions)(nil),
32*1c12ee1eSDan Willemsen		(*legacypb.Legacy)(nil),
33*1c12ee1eSDan Willemsen		protoimpl.X.MessageOf((*legacy1pb.Message)(nil)).Interface(),
34*1c12ee1eSDan Willemsen	}
35*1c12ee1eSDan Willemsen	if flags.ProtoLegacy {
36*1c12ee1eSDan Willemsen		ms = append(ms, (*testpb.TestWeak)(nil))
37*1c12ee1eSDan Willemsen	}
38*1c12ee1eSDan Willemsen
39*1c12ee1eSDan Willemsen	for _, m := range ms {
40*1c12ee1eSDan Willemsen		t.Run(fmt.Sprintf("%T", m), func(t *testing.T) {
41*1c12ee1eSDan Willemsen			prototest.Message{}.Test(t, m.ProtoReflect().Type())
42*1c12ee1eSDan Willemsen		})
43*1c12ee1eSDan Willemsen	}
44*1c12ee1eSDan Willemsen}
45