func anyEqual(got, want proto.Message) bool {
	if proto.Equal(got, want) {
		return true
	}
	g := expandedMarshaler.Text(got)
	w := expandedMarshaler.Text(want)
	return g == w
}
anyEqual reports whether two messages which may be google.protobuf.Any or may
contain google.protobuf.Any fields are equal. We can't use proto.Equal for
comparison, because semantically equivalent messages may be marshaled to
binary in different tag order. Instead, trust that TextMarshaler with
ExpandAny option works and compare the text marshaling results.
package proto_test
import (
	"strings"
	"testing"
	"github.com/golang/protobuf/proto"
	pb "github.com/golang/protobuf/proto/proto3_proto"
	testpb "github.com/golang/protobuf/proto/testdata"
	anypb "github.com/golang/protobuf/ptypes/any"
)
var (
	expandedMarshaler        = proto.TextMarshaler{ExpandAny: true}
	expandedCompactMarshaler = proto.TextMarshaler{Compact: true, ExpandAny: true}
)