44
// ProtoEqual compares two proto messages for equality using proto semantics. Options can be passed to customize
45
// comparison behavior, e.g. protorequire.IgnoreFields to exclude specific fields.
46
>
func ProtoEqual(t require.TestingT, a proto.Message, b proto.Message, opts ...Option) {
require.go
47
>
if th, ok := t.(helper); ok {
48
th.Helper()
49
}
51
>
for _, opt := range opts {
52
opt(a, cfg)
53
}
54
>
cmpOpts := append([]cmp.Option{protocmp.Transform()}, cfg.cmpOpts...)
require.go
55
>
if diff := cmp.Diff(a, b, cmpOpts...); diff != "" {
56
require.Fail(t, fmt.Sprintf("Proto mismatch (-want +got):\n%v", diff))
57
}