@@ -17,10 +17,8 @@ limitations under the License.
17
17
package gossip
18
18
19
19
import (
20
- "fmt"
21
- "testing"
22
-
23
20
"reflect"
21
+ "testing"
24
22
25
23
"github.com/golang/protobuf/proto"
26
24
"github.com/hyperledger/fabric/bccsp"
@@ -152,7 +150,7 @@ func TestVerify(t *testing.T) {
152
150
assert .NoError (t , err )
153
151
err = msgCryptoService .Verify (api .PeerIdentityType ("Dave" ), sigma , msg )
154
152
assert .Error (t , err )
155
- assert .Contains (t , fmt . Sprintf ( "%v" , err ), "Could not acquire policy manager" )
153
+ assert .Contains (t , err . Error ( ), "Could not acquire policy manager" )
156
154
157
155
// Check invalid args
158
156
assert .Error (t , msgCryptoService .Verify (nil , sigma , msg ))
@@ -182,34 +180,38 @@ func TestVerifyBlock(t *testing.T) {
182
180
)
183
181
184
182
// - Prepare testing valid block, Alice signs it.
185
- blockRaw , msg := mockBlock (t , "C" , aliceSigner , nil )
183
+ blockRaw , msg := mockBlock (t , "C" , 42 , aliceSigner , nil )
186
184
policyManagerGetter .Managers ["C" ].(* mocks.ChannelPolicyManager ).Policy .(* mocks.Policy ).Deserializer .(* mocks.IdentityDeserializer ).Msg = msg
187
- blockRaw2 , msg2 := mockBlock (t , "D" , aliceSigner , nil )
185
+ blockRaw2 , msg2 := mockBlock (t , "D" , 42 , aliceSigner , nil )
188
186
policyManagerGetter .Managers ["D" ].(* mocks.ChannelPolicyManager ).Policy .(* mocks.Policy ).Deserializer .(* mocks.IdentityDeserializer ).Msg = msg2
189
187
190
188
// - Verify block
191
- assert .NoError (t , msgCryptoService .VerifyBlock ([]byte ("C" ), blockRaw ))
189
+ assert .NoError (t , msgCryptoService .VerifyBlock ([]byte ("C" ), 42 , blockRaw ))
190
+ // Wrong sequence number claimed
191
+ err := msgCryptoService .VerifyBlock ([]byte ("C" ), 43 , blockRaw )
192
+ assert .Error (t , err )
193
+ assert .Contains (t , err .Error (), "but actual seqNum inside block is" )
192
194
delete (policyManagerGetter .Managers , "D" )
193
- nilPolMgrErr := msgCryptoService .VerifyBlock ([]byte ("D" ), blockRaw2 )
194
- assert .Contains (t , fmt . Sprintf ( "%v" , nilPolMgrErr ), "Could not acquire policy manager" )
195
+ nilPolMgrErr := msgCryptoService .VerifyBlock ([]byte ("D" ), 42 , blockRaw2 )
196
+ assert .Contains (t , nilPolMgrErr . Error ( ), "Could not acquire policy manager" )
195
197
assert .Error (t , nilPolMgrErr )
196
- assert .Error (t , msgCryptoService .VerifyBlock ([]byte ("A" ), blockRaw ))
197
- assert .Error (t , msgCryptoService .VerifyBlock ([]byte ("B" ), blockRaw ))
198
+ assert .Error (t , msgCryptoService .VerifyBlock ([]byte ("A" ), 42 , blockRaw ))
199
+ assert .Error (t , msgCryptoService .VerifyBlock ([]byte ("B" ), 42 , blockRaw ))
198
200
199
201
// - Prepare testing invalid block (wrong data has), Alice signs it.
200
- blockRaw , msg = mockBlock (t , "C" , aliceSigner , []byte {0 })
202
+ blockRaw , msg = mockBlock (t , "C" , 42 , aliceSigner , []byte {0 })
201
203
policyManagerGetter .Managers ["C" ].(* mocks.ChannelPolicyManager ).Policy .(* mocks.Policy ).Deserializer .(* mocks.IdentityDeserializer ).Msg = msg
202
204
203
205
// - Verify block
204
- assert .Error (t , msgCryptoService .VerifyBlock ([]byte ("C" ), blockRaw ))
206
+ assert .Error (t , msgCryptoService .VerifyBlock ([]byte ("C" ), 42 , blockRaw ))
205
207
206
208
// Check invalid args
207
- assert .Error (t , msgCryptoService .VerifyBlock ([]byte ("C" ), []byte {0 , 1 , 2 , 3 , 4 }))
208
- assert .Error (t , msgCryptoService .VerifyBlock ([]byte ("C" ), nil ))
209
+ assert .Error (t , msgCryptoService .VerifyBlock ([]byte ("C" ), 42 , []byte {0 , 1 , 2 , 3 , 4 }))
210
+ assert .Error (t , msgCryptoService .VerifyBlock ([]byte ("C" ), 42 , nil ))
209
211
}
210
212
211
- func mockBlock (t * testing.T , channel string , localSigner crypto.LocalSigner , dataHash []byte ) ([]byte , []byte ) {
212
- block := common .NewBlock (0 , nil )
213
+ func mockBlock (t * testing.T , channel string , seqNum uint64 , localSigner crypto.LocalSigner , dataHash []byte ) ([]byte , []byte ) {
214
+ block := common .NewBlock (seqNum , nil )
213
215
214
216
// Add a fake transaction to the block referring channel "C"
215
217
sProp , _ := utils .MockSignedEndorserProposalOrPanic (channel , & protospeer.ChaincodeSpec {}, []byte ("transactor" ), []byte ("transactor's signature" ))
0 commit comments