|
|
@@ -192,35 +192,3 @@ func TestNewPeer(t *testing.T) {
|
|
|
|
|
|
p.Disconnect(DiscAlreadyConnected) // Should not hang
|
|
|
}
|
|
|
-
|
|
|
-// expectMsg reads a message from r and verifies that its
|
|
|
-// code and encoded RLP content match the provided values.
|
|
|
-// If content is nil, the payload is discarded and not verified.
|
|
|
-func expectMsg(r MsgReader, code uint64, content interface{}) error {
|
|
|
- msg, err := r.ReadMsg()
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- if msg.Code != code {
|
|
|
- return fmt.Errorf("message code mismatch: got %d, expected %d", msg.Code, code)
|
|
|
- }
|
|
|
- if content == nil {
|
|
|
- return msg.Discard()
|
|
|
- } else {
|
|
|
- contentEnc, err := rlp.EncodeToBytes(content)
|
|
|
- if err != nil {
|
|
|
- panic("content encode error: " + err.Error())
|
|
|
- }
|
|
|
- if int(msg.Size) != len(contentEnc) {
|
|
|
- return fmt.Errorf("message size mismatch: got %d, want %d", msg.Size, len(contentEnc))
|
|
|
- }
|
|
|
- actualContent, err := ioutil.ReadAll(msg.Payload)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- if !bytes.Equal(actualContent, contentEnc) {
|
|
|
- return fmt.Errorf("message payload mismatch:\ngot: %x\nwant: %x", actualContent, contentEnc)
|
|
|
- }
|
|
|
- }
|
|
|
- return nil
|
|
|
-}
|