Skip to content

Commit 820709c

Browse files
committed
adds more tests to torrentdownloader
1 parent 1727118 commit 820709c

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

tests/codex/bittorrent/testtorrentdownloader.nim

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import pkg/codex/bittorrent/manifest
1414
import pkg/codex/bittorrent/torrentdownloader
1515

1616
import pkg/codex/utils/iter
17+
import pkg/codex/utils/safeasynciter
1718
import pkg/codex/logutils
1819

1920
import ../../asynctest
@@ -208,6 +209,47 @@ asyncchecksuite "Torrent Downloader":
208209
check blockIter.finished
209210
await torrentDownloader.stop()
210211

212+
test "get downloaded blocks using async iter":
213+
torrentDownloader.start()
214+
215+
let blockIter = Iter.new(0 ..< codexManifest.blocksCount)
216+
217+
for dataFut in torrentDownloader.getAsyncBlockIterator():
218+
let status = await dataFut.withTimeout(1.seconds)
219+
assert status == true
220+
let (blockIndex, data) = (await dataFut).tryGet()
221+
trace "got data", blockIndex, len = data.len
222+
let expectedBlockIndex = blockIter.next()
223+
check blockIndex == expectedBlockIndex
224+
let treeCid = codexManifest.treeCid
225+
let address = BlockAddress.init(treeCid, expectedBlockIndex)
226+
let blk = (await localStore.getBlock(address)).tryGet()
227+
check blk.data == data
228+
229+
check blockIter.finished
230+
await torrentDownloader.stop()
231+
232+
test "get downloaded blocks using async pairs iter":
233+
torrentDownloader.start()
234+
235+
let blockIter = Iter.new(0 ..< codexManifest.blocksCount)
236+
237+
for i, dataFut in torrentDownloader.getAsyncBlockIterator():
238+
let status = await dataFut.withTimeout(1.seconds)
239+
assert status == true
240+
let (blockIndex, data) = (await dataFut).tryGet()
241+
trace "got data", blockIndex, len = data.len
242+
let expectedBlockIndex = blockIter.next()
243+
check i == expectedBlockIndex
244+
check blockIndex == expectedBlockIndex
245+
let treeCid = codexManifest.treeCid
246+
let address = BlockAddress.init(treeCid, expectedBlockIndex)
247+
let blk = (await localStore.getBlock(address)).tryGet()
248+
check blk.data == data
249+
250+
check blockIter.finished
251+
await torrentDownloader.stop()
252+
211253
test "canceling download":
212254
torrentDownloader.start()
213255

0 commit comments

Comments
 (0)