diff options
author | obscuren <geffobscura@gmail.com> | 2015-04-24 21:04:58 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-04-24 21:04:58 +0800 |
commit | 31f82eb3347454f64f3d41de3087109d09597806 (patch) | |
tree | ec641ffa199d3139e8e142dbe3c6e71be0df4fd9 /eth/downloader | |
parent | b86e7526e12a5a49c1739ec02d3c1c5cc667dcb3 (diff) | |
download | dexon-31f82eb3347454f64f3d41de3087109d09597806.tar dexon-31f82eb3347454f64f3d41de3087109d09597806.tar.gz dexon-31f82eb3347454f64f3d41de3087109d09597806.tar.bz2 dexon-31f82eb3347454f64f3d41de3087109d09597806.tar.lz dexon-31f82eb3347454f64f3d41de3087109d09597806.tar.xz dexon-31f82eb3347454f64f3d41de3087109d09597806.tar.zst dexon-31f82eb3347454f64f3d41de3087109d09597806.zip |
eth, eth/downloader: don't require td on downloader. Fixed tests
Diffstat (limited to 'eth/downloader')
-rw-r--r-- | eth/downloader/downloader.go | 5 | ||||
-rw-r--r-- | eth/downloader/downloader_test.go | 34 |
2 files changed, 18 insertions, 21 deletions
diff --git a/eth/downloader/downloader.go b/eth/downloader/downloader.go index 6ac8310b3..00c4cd88f 100644 --- a/eth/downloader/downloader.go +++ b/eth/downloader/downloader.go @@ -39,7 +39,6 @@ var ( type hashCheckFn func(common.Hash) bool type chainInsertFn func(types.Blocks) error type hashIterFn func() (common.Hash, error) -type currentTdFn func() *big.Int type blockPack struct { peerId string @@ -61,7 +60,6 @@ type Downloader struct { // Callbacks hasBlock hashCheckFn insertChain chainInsertFn - currentTd currentTdFn // Status fetchingHashes int32 @@ -76,13 +74,12 @@ type Downloader struct { quit chan struct{} } -func New(hasBlock hashCheckFn, insertChain chainInsertFn, currentTd currentTdFn) *Downloader { +func New(hasBlock hashCheckFn, insertChain chainInsertFn) *Downloader { downloader := &Downloader{ queue: newqueue(), peers: make(peers), hasBlock: hasBlock, insertChain: insertChain, - currentTd: currentTd, newPeerCh: make(chan *peer, 1), syncCh: make(chan syncPack, 1), hashCh: make(chan []common.Hash, 1), diff --git a/eth/downloader/downloader_test.go b/eth/downloader/downloader_test.go index 1d449cfba..ddb3ec7ae 100644 --- a/eth/downloader/downloader_test.go +++ b/eth/downloader/downloader_test.go @@ -49,7 +49,7 @@ type downloadTester struct { func newTester(t *testing.T, hashes []common.Hash, blocks map[common.Hash]*types.Block) *downloadTester { tester := &downloadTester{t: t, hashes: hashes, blocks: blocks, done: make(chan bool)} - downloader := New(tester.hasBlock, tester.insertChain, func() *big.Int { return new(big.Int) }) + downloader := New(tester.hasBlock, tester.insertChain) tester.downloader = downloader return tester @@ -112,7 +112,8 @@ func TestDownload(t *testing.T) { minDesiredPeerCount = 4 blockTtl = 1 * time.Second - hashes := createHashes(0, 1000) + targetBlocks := 1000 + hashes := createHashes(0, targetBlocks) blocks := createBlocksFromHashes(hashes) tester := newTester(t, hashes, blocks) @@ -121,21 +122,21 @@ func TestDownload(t *testing.T) { tester.badBlocksPeer("peer3", big.NewInt(0), common.Hash{}) tester.badBlocksPeer("peer4", big.NewInt(0), common.Hash{}) -success: - select { - case <-tester.done: - break success - case <-time.After(10 * time.Second): // XXX this could actually fail on a slow computer - t.Error("timeout") + blox, err := tester.downloader.Synchronise("peer1", hashes[0]) + if err != nil { + t.Error("download error", err) + } + + if len(blox) != targetBlocks { + t.Error("expected", targetBlocks, "have", len(blox)) } } func TestMissing(t *testing.T) { - t.Skip() - glog.SetV(logger.Detail) glog.SetToStderr(true) + targetBlocks := 1000 hashes := createHashes(0, 1000) extraHashes := createHashes(1001, 1003) blocks := createBlocksFromHashes(append(extraHashes, hashes...)) @@ -146,13 +147,12 @@ func TestMissing(t *testing.T) { hashes = append(extraHashes, hashes[:len(hashes)-1]...) tester.newPeer("peer2", big.NewInt(0), common.Hash{}) -success1: - select { - case <-tester.done: - break success1 - case <-time.After(10 * time.Second): // XXX this could actually fail on a slow computer - t.Error("timout") + blox, err := tester.downloader.Synchronise("peer1", hashes[0]) + if err != nil { + t.Error("download error", err) } - tester.downloader.AddBlock("peer2", blocks[hashes[len(hashes)-1]], big.NewInt(10001)) + if len(blox) != targetBlocks { + t.Error("expected", targetBlocks, "have", len(blox)) + } } |