blob: 5eec961005a212415025713fa5ac3e238c5a3d8c [file] [log] [blame]
Damien Neil5ec58b92019-04-30 11:36:39 -07001// Copyright 2019 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package prototest_test
6
7import (
8 "fmt"
9 "testing"
10
Joe Tsai3d8e3692019-04-08 13:52:14 -070011 "google.golang.org/protobuf/internal/flags"
Damien Neile89e6242019-05-13 23:55:40 -070012 "google.golang.org/protobuf/proto"
Damien Neil92f76182019-08-02 16:58:08 -070013 "google.golang.org/protobuf/runtime/protoimpl"
Damien Neile89e6242019-05-13 23:55:40 -070014 "google.golang.org/protobuf/testing/prototest"
Joe Tsai3d8e3692019-04-08 13:52:14 -070015
16 irregularpb "google.golang.org/protobuf/internal/testprotos/irregular"
Damien Neil92f76182019-08-02 16:58:08 -070017 legacypb "google.golang.org/protobuf/internal/testprotos/legacy"
18 legacy1pb "google.golang.org/protobuf/internal/testprotos/legacy/proto2.v0.0.0-20160225-2fc053c5"
Joe Tsai3d8e3692019-04-08 13:52:14 -070019 testpb "google.golang.org/protobuf/internal/testprotos/test"
20 _ "google.golang.org/protobuf/internal/testprotos/test/weak1"
21 _ "google.golang.org/protobuf/internal/testprotos/test/weak2"
22 test3pb "google.golang.org/protobuf/internal/testprotos/test3"
Damien Neil5ec58b92019-04-30 11:36:39 -070023)
24
25func Test(t *testing.T) {
Joe Tsai3d8e3692019-04-08 13:52:14 -070026 ms := []proto.Message{
Damien Neil5ec58b92019-04-30 11:36:39 -070027 (*testpb.TestAllTypes)(nil),
28 (*test3pb.TestAllTypes)(nil),
29 (*testpb.TestRequired)(nil),
Damien Neil5b6d0472019-06-14 11:54:07 -070030 (*irregularpb.Message)(nil),
Damien Neild91246e2019-06-21 08:36:26 -070031 (*testpb.TestAllExtensions)(nil),
Damien Neil92f76182019-08-02 16:58:08 -070032 (*legacypb.Legacy)(nil),
33 protoimpl.X.MessageOf((*legacy1pb.Message)(nil)).Interface(),
Joe Tsai3d8e3692019-04-08 13:52:14 -070034 }
Joe Tsai1799d112019-08-08 13:31:59 -070035 if flags.ProtoLegacy {
Joe Tsai3d8e3692019-04-08 13:52:14 -070036 ms = append(ms, (*testpb.TestWeak)(nil))
37 }
38
39 for _, m := range ms {
Damien Neil5ec58b92019-04-30 11:36:39 -070040 t.Run(fmt.Sprintf("%T", m), func(t *testing.T) {
Damien Neild91246e2019-06-21 08:36:26 -070041 prototest.TestMessage(t, m, prototest.MessageOptions{})
Damien Neil5ec58b92019-04-30 11:36:39 -070042 })
43 }
44}