@@ -43,7 +43,7 @@ func BenchmarkCborDecoding(b *testing.B) {
43
43
for pb .Next () {
44
44
var got PartialGMessage
45
45
require .NoError (b , encoder .Decode (data , & got ))
46
- require . Equal (b , msg , & got )
46
+ requireEqualPartialMessages (b , msg , & got )
47
47
}
48
48
})
49
49
}
@@ -79,11 +79,29 @@ func BenchmarkZstdDecoding(b *testing.B) {
79
79
for pb .Next () {
80
80
var got PartialGMessage
81
81
require .NoError (b , encoder .Decode (data , & got ))
82
- require . Equal (b , msg , & got )
82
+ requireEqualPartialMessages (b , msg , & got )
83
83
}
84
84
})
85
85
}
86
86
87
+ func requireEqualPartialMessages (b * testing.B , expected , actual * PartialGMessage ) {
88
+ // Because empty ECChain gets marshaled as null, we need to use ECChain.Eq for
89
+ // checking equality. Hence, the custom equality check.
90
+ require .Equal (b , expected .Sender , actual .Sender )
91
+ require .Equal (b , expected .Signature , actual .Signature )
92
+ require .Equal (b , expected .VoteValueKey , actual .VoteValueKey )
93
+ require .Equal (b , expected .Ticket , actual .Ticket )
94
+ require .True (b , expected .Vote .Eq (& actual .Vote ))
95
+ if expected .Justification == nil {
96
+ require .Nil (b , actual .Justification )
97
+ } else {
98
+ require .NotNil (b , actual .Justification )
99
+ require .Equal (b , expected .Justification .Signature , actual .Justification .Signature )
100
+ require .Equal (b , expected .Justification .Signers , actual .Justification .Signers )
101
+ require .True (b , expected .Justification .Vote .Eq (& actual .Justification .Vote ))
102
+ }
103
+ }
104
+
87
105
func generateRandomPartialGMessage (b * testing.B , rng * rand.Rand ) * PartialGMessage {
88
106
var pgmsg PartialGMessage
89
107
pgmsg .GMessage = generateRandomGMessage (b , rng )
0 commit comments