nim-codex/tests/dagger/testblockset.nim

53 lines
1.3 KiB
Nim
Raw Permalink Normal View History

2021-08-27 15:38:02 -06:00
import pkg/chronos
import pkg/questionable
import pkg/questionable/results
import pkg/asynctest
import pkg/libp2p
import pkg/stew/byteutils as stew
import pkg/dagger/chunker
import pkg/dagger/rng
import pkg/dagger/blocktype as bt
import pkg/dagger/blockstream
import pkg/dagger/blockset
2021-08-27 16:01:43 -06:00
import ./helpers
suite "BlockSet":
2021-08-27 16:01:43 -06:00
test "Should produce valid tree hash checksum":
let
blocks = @[
!Block.new("Block 1".toBytes),
!Block.new("Block 2".toBytes),
!Block.new("Block 3".toBytes),
!Block.new("Block 4".toBytes),
!Block.new("Block 5".toBytes),
!Block.new("Block 6".toBytes),
!Block.new("Block 7".toBytes),
]
checksum = @[byte(43), 2, 105, 202, 45, 227,
178, 211, 83, 246, 56, 250, 210,
160, 210, 98, 123, 87, 139, 157,
188, 221, 252, 255, 17, 11, 79,
85, 220, 161, 238, 108]
var idx = 0
proc nextBlockHandler(): ?!Block =
let blk = if idx < blocks.len: blocks[idx] else: return
idx.inc()
return success blk
2021-08-27 15:38:02 -06:00
let
2021-08-27 16:01:43 -06:00
blockStream = TestStream(handler: nextBlockHandler)
2021-08-27 15:38:02 -06:00
blockSet = BlockSetRef.new(stream = blockStream)
let res = blockSet.treeHash()
check res.isOK
if h =? res:
2021-08-27 16:01:43 -06:00
check h.hashBytes() == checksum
2021-08-27 15:38:02 -06:00
return
2021-08-27 16:01:43 -06:00
check false