if ps.ExportClientStatus {
testutil.ExportStatusWriter(seeder, "s")
}
- // seederTorrent, new, err := seeder.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
- _, new, err := seeder.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
- require.NoError(t, err)
- assert.True(t, new)
+ seederTorrent, _, _ := seeder.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
+ seederTorrent.VerifyData()
// Create leecher and a Torrent.
leecherDataDir, err := ioutil.TempDir("", "")
require.NoError(t, err)
require.NoError(t, err)
defer seeder.Close()
testutil.ExportStatusWriter(seeder, "s")
- seeder.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
+ seederTorrent, _, _ := seeder.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
+ seederTorrent.VerifyData()
cfg.DataDir, err = ioutil.TempDir("", "")
require.NoError(t, err)
defer os.RemoveAll(cfg.DataDir)
seeder, err := NewClient(cfg)
require.Nil(t, err)
defer seeder.Close()
- seeder.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
+ seederTorrent, _, _ := seeder.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
+ seederTorrent.VerifyData()
leecherDataDir, err := ioutil.TempDir("", "")
require.Nil(t, err)
defer os.RemoveAll(leecherDataDir)
seeder, err := NewClient(cfg)
require.Nil(t, err)
defer seeder.Close()
- seeder.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
+ seederTorrent, _, _ := seeder.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
+ seederTorrent.VerifyData()
leecherDataDir, err := ioutil.TempDir("", "")
require.Nil(t, err)
defer os.RemoveAll(leecherDataDir)
greetingDataTempDir, greetingMetainfo := testutil.GreetingTestTorrent()
defer os.RemoveAll(greetingDataTempDir)
filePieceStore := csf(fileCache)
+ defer filePieceStore.Close()
info, err := greetingMetainfo.UnmarshalInfo()
require.NoError(t, err)
ih := greetingMetainfo.HashInfoBytes()
for i := 0; i < info.NumPieces(); i++ {
p := info.Piece(i)
if alreadyCompleted {
- err := greetingData.Piece(p).MarkComplete()
- assert.NoError(t, err)
+ require.NoError(t, greetingData.Piece(p).MarkComplete())
}
}
cfg := TestingConfig()
if ps.ExportClientStatus {
testutil.ExportStatusWriter(seeder, "s")
}
- seeder.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
+ seederTorrent, _, _ := seeder.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
+ seederTorrent.VerifyData()
leecherDataDir, err := ioutil.TempDir("", "")
require.NoError(t, err)
defer os.RemoveAll(leecherDataDir)
magnet := mi.Magnet(name, mi.HashInfoBytes()).String()
tr, err := cl.AddTorrent(&mi)
require.NoError(t, err)
- assert.True(t, tr.Seeding())
+ require.True(t, tr.Seeding())
+ tr.VerifyData()
return magnet
}
}
for i := range t.pieces {
t.updatePieceCompletion(i)
- t.pieces[i].QueuedForHash = true
+ // t.pieces[i].QueuedForHash = true
}
- go func() {
- for i := range t.pieces {
- t.verifyPiece(i)
- }
- }()
+ // go func() {
+ // for i := range t.pieces {
+ // t.verifyPiece(i)
+ // }
+ // }()
return nil
}
cl.mu.Unlock()
sum := t.hashPiece(piece)
cl.mu.Lock()
+ p.numVerifies++
p.Hashing = false
t.pieceHashed(piece, sum == p.Hash)
}
t.publishPieceChange(pieceIndex)
go t.verifyPiece(pieceIndex)
}
+
+func (t *Torrent) VerifyData() {
+ for i := range iter.N(t.NumPieces()) {
+ t.Piece(i).VerifyData()
+ }
+}