From: Matt Joiner Date: Tue, 22 Mar 2016 02:09:02 +0000 (+1100) Subject: Add a test for bad have messages X-Git-Tag: v1.0.0~822 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=0c877a9d94fce471f1224b99d76a0e69bb3a4402;p=btrtrc.git Add a test for bad have messages The reason for the cleanup to peer have-related messages in the first place. --- diff --git a/client_test.go b/client_test.go index 38e41dc0..ccb60b5d 100644 --- a/client_test.go +++ b/client_test.go @@ -864,3 +864,27 @@ func TestTorrentDownloadAllThenCancel(t *testing.T) { Cancel: true, }) } + +// Ensure that it's an error for a peer to send an invalid have message. +func TestPeerInvalidHave(t *testing.T) { + cl, err := NewClient(&TestingConfig) + require.NoError(t, err) + defer cl.Close() + tt, _new, err := cl.AddTorrentSpec(&TorrentSpec{ + Info: &metainfo.InfoEx{ + Info: metainfo.Info{ + PieceLength: 1, + Pieces: make([]byte, 20), + Files: []metainfo.FileInfo{{Length: 1}}, + }, + }, + }) + require.NoError(t, err) + assert.True(t, _new) + defer tt.Drop() + cn := &connection{ + t: tt.torrent, + } + assert.NoError(t, cn.peerSentHave(0)) + assert.Error(t, cn.peerSentHave(1)) +}