eth/downloader: added additional tests
This commit is contained in:
		
							parent
							
								
									c6ad3aec05
								
							
						
					
					
						commit
						25bc88113f
					
				| @ -23,12 +23,19 @@ func createHashes(start, amount int) (hashes []common.Hash) { | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func createBlock(i int, prevHash, hash common.Hash) *types.Block { | ||||
| 	header := &types.Header{Number: big.NewInt(int64(i))} | ||||
| 	block := types.NewBlockWithHeader(header) | ||||
| 	block.HeaderHash = hash | ||||
| 	block.ParentHeaderHash = knownHash | ||||
| 	return block | ||||
| } | ||||
| 
 | ||||
| func createBlocksFromHashes(hashes []common.Hash) map[common.Hash]*types.Block { | ||||
| 	blocks := make(map[common.Hash]*types.Block) | ||||
| 
 | ||||
| 	for i, hash := range hashes { | ||||
| 		header := &types.Header{Number: big.NewInt(int64(len(hashes) - i))} | ||||
| 		blocks[hash] = types.NewBlockWithHeader(header) | ||||
| 		blocks[hash].HeaderHash = hash | ||||
| 		blocks[hash] = createBlock(len(hashes)-i, knownHash, hash) | ||||
| 	} | ||||
| 
 | ||||
| 	return blocks | ||||
| @ -162,7 +169,7 @@ func TestTaking(t *testing.T) { | ||||
| 		t.Error("download error", err) | ||||
| 	} | ||||
| 
 | ||||
| 	bs1 := tester.downloader.TakeBlocks(1000) | ||||
| 	bs1 := tester.downloader.TakeBlocks() | ||||
| 	if len(bs1) != 1000 { | ||||
| 		t.Error("expected to take 1000, got", len(bs1)) | ||||
| 	} | ||||
|  | ||||
							
								
								
									
										62
									
								
								eth/downloader/queue_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								eth/downloader/queue_test.go
									
									
									
									
									
										Normal file
									
								
							| @ -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()) | ||||
| 	} | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user