+
+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))
+}