diff options
author | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-05-04 17:00:54 +0800 |
---|---|---|
committer | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-05-04 17:00:54 +0800 |
commit | ac85fdc75edfaf999a7b2d25c5313c1b3eeb86ad (patch) | |
tree | 0e5664b1fb920993d6c61727cb1cc7508abe6810 /eth/downloader/queue_test.go | |
parent | 3fef60190384106af390dd23a65384b9cc6e4a28 (diff) | |
parent | 37770ed0d37f9c8ece37fecd443e7c70e915a48a (diff) | |
download | go-tangerine-ac85fdc75edfaf999a7b2d25c5313c1b3eeb86ad.tar go-tangerine-ac85fdc75edfaf999a7b2d25c5313c1b3eeb86ad.tar.gz go-tangerine-ac85fdc75edfaf999a7b2d25c5313c1b3eeb86ad.tar.bz2 go-tangerine-ac85fdc75edfaf999a7b2d25c5313c1b3eeb86ad.tar.lz go-tangerine-ac85fdc75edfaf999a7b2d25c5313c1b3eeb86ad.tar.xz go-tangerine-ac85fdc75edfaf999a7b2d25c5313c1b3eeb86ad.tar.zst go-tangerine-ac85fdc75edfaf999a7b2d25c5313c1b3eeb86ad.zip |
Merge pull request #835 from obscuren/handler_errors
eth, eth/downloader: error handlers and td checks
Diffstat (limited to 'eth/downloader/queue_test.go')
-rw-r--r-- | eth/downloader/queue_test.go | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/eth/downloader/queue_test.go b/eth/downloader/queue_test.go new file mode 100644 index 000000000..b163bd9c7 --- /dev/null +++ b/eth/downloader/queue_test.go @@ -0,0 +1,62 @@ +package downloader + +import ( + "testing" + + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "gopkg.in/fatih/set.v0" +) + +func createHashSet(hashes []common.Hash) *set.Set { + hset := set.New() + + for _, hash := range hashes { + hset.Add(hash) + } + + return hset +} + +func createBlocksFromHashSet(hashes *set.Set) []*types.Block { + blocks := make([]*types.Block, hashes.Size()) + + var i int + hashes.Each(func(v interface{}) bool { + blocks[i] = createBlock(i, common.Hash{}, v.(common.Hash)) + i++ + return true + }) + + return blocks +} + +func TestChunking(t *testing.T) { + queue := newqueue() + peer1 := newPeer("peer1", common.Hash{}, nil, nil) + peer2 := newPeer("peer2", common.Hash{}, nil, nil) + + // 99 + 1 (1 == known genesis hash) + hashes := createHashes(0, 99) + hashSet := createHashSet(hashes) + queue.put(hashSet) + + chunk1 := queue.get(peer1, 99) + if chunk1 == nil { + t.Errorf("chunk1 is nil") + t.FailNow() + } + chunk2 := queue.get(peer2, 99) + if chunk2 == nil { + t.Errorf("chunk2 is nil") + t.FailNow() + } + + if chunk1.hashes.Size() != 99 { + t.Error("expected chunk1 hashes to be 99, got", chunk1.hashes.Size()) + } + + if chunk2.hashes.Size() != 1 { + t.Error("expected chunk1 hashes to be 1, got", chunk2.hashes.Size()) + } +} |