"github.com/stretchr/testify/require"
"github.com/anacrolix/torrent/bencode"
+ "github.com/anacrolix/torrent/internal/testutil"
"github.com/anacrolix/torrent/metainfo"
"github.com/anacrolix/torrent/peer_protocol"
"github.com/anacrolix/torrent/storage"
func TestEmptyFilesAndZeroPieceLengthWithMMapStorage(t *testing.T) {
testEmptyFilesAndZeroPieceLength(t, storage.NewMMap(TestingConfig.DataDir))
}
+
+func TestPieceHashFailed(t *testing.T) {
+ mi := testutil.GreetingMetaInfo()
+ tt := Torrent{
+ cl: new(Client),
+ infoHash: mi.HashInfoBytes(),
+ storageOpener: storage.NewClient(badStorage{}),
+ chunkSize: 2,
+ }
+ require.NoError(t, tt.setInfoBytes(mi.InfoBytes))
+ tt.pieces[1].DirtyChunks.AddRange(0, 3)
+ require.True(t, tt.pieceAllDirty(1))
+ tt.pieceHashed(1, false)
+ // Dirty chunks should be cleared so we can try again.
+ require.False(t, tt.pieceAllDirty(1))
+}