protobuf-go/testing/prototest/prototest_test.go
Joe Tsai 1799d1111a all: rename tag and flags for legacy support
Rename build tag "proto1_legacy" -> "protolegacy"
to be consistent with the "protoreflect" tag.

Rename flag constant "Proto1Legacy" -> "ProtoLegacy" since
it covers more than simply proto1 legacy features.
For example, it covers alpha-features of proto3 that
were eventually removed from the final proto3 release.

Change-Id: I0f4fcbadd4b5a61c87645e2e5be11d187e59157c
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/189345
Reviewed-by: Damien Neil <dneil@google.com>
2019-08-08 20:49:00 +00:00

45 lines
1.4 KiB
Go

// 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.v0.0.0-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.TestMessage(t, m, prototest.MessageOptions{})
})
}
}