diff options
author | obscuren <geffobscura@gmail.com> | 2015-04-21 18:03:02 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-04-21 18:03:02 +0800 |
commit | f4cd66dc009191f51fc47d9c218c1073a1552bdf (patch) | |
tree | 62ccd1501fc52a4f4606c8bee0f00bc99756c088 /blockpool/errors_test.go | |
parent | ed0817c55dc45290d9de594fea28f7bc35d564da (diff) | |
download | dexon-f4cd66dc009191f51fc47d9c218c1073a1552bdf.tar.gz dexon-f4cd66dc009191f51fc47d9c218c1073a1552bdf.tar.zst dexon-f4cd66dc009191f51fc47d9c218c1073a1552bdf.zip |
blockpool: deleted
Diffstat (limited to 'blockpool/errors_test.go')
-rw-r--r-- | blockpool/errors_test.go | 224 |
1 files changed, 0 insertions, 224 deletions
diff --git a/blockpool/errors_test.go b/blockpool/errors_test.go deleted file mode 100644 index 2ab2d47f5..000000000 --- a/blockpool/errors_test.go +++ /dev/null @@ -1,224 +0,0 @@ -package blockpool - -import ( - "testing" - "time" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/pow" -) - -func TestInvalidBlock(t *testing.T) { - _, blockPool, blockPoolTester := newTestBlockPool(t) - blockPoolTester.blockChain[0] = nil - blockPoolTester.initRefBlockChain(2) - blockPoolTester.refBlockChain[2] = []int{} - - blockPool.Start() - - peer1 := blockPoolTester.newPeer("peer1", 1, 3) - peer1.AddPeer() - go peer1.serveBlocks(2, 3) - go peer1.serveBlockHashes(3, 2, 1, 0) - peer1.serveBlocks(0, 1, 2) - - blockPool.Wait(waitTimeout) - blockPool.Stop() - blockPoolTester.refBlockChain[2] = []int{} - blockPoolTester.checkBlockChain(blockPoolTester.refBlockChain) - if len(peer1.peerErrors) == 1 { - if peer1.peerErrors[0] != ErrInvalidBlock { - t.Errorf("wrong error, got %v, expected %v", peer1.peerErrors[0], ErrInvalidBlock) - } - } else { - t.Errorf("expected %v error, got %v", ErrInvalidBlock, peer1.peerErrors) - } -} - -func TestVerifyPoW(t *testing.T) { - t.Skip() // :FIXME: - - _, blockPool, blockPoolTester := newTestBlockPool(t) - blockPoolTester.blockChain[0] = nil - blockPoolTester.initRefBlockChain(3) - first := false - blockPoolTester.blockPool.verifyPoW = func(b pow.Block) bool { - bb, _ := b.(*types.Block) - indexes := blockPoolTester.hashPool.HashesToIndexes([]common.Hash{bb.Hash()}) - if indexes[0] == 2 && !first { - first = true - return false - } else { - return true - } - - } - - blockPool.Start() - - peer1 := blockPoolTester.newPeer("peer1", 1, 3) - peer2 := blockPoolTester.newPeer("peer2", 1, 3) - peer1.AddPeer() - peer2.AddPeer() - go peer1.serveBlocks(2, 3) - go peer1.serveBlockHashes(3, 2, 1, 0) - peer1.serveBlocks(0, 1, 2, 3) - blockPoolTester.blockPool.verifyPoW = func(b pow.Block) bool { - return true - } - peer2.serveBlocks(1, 2) - - blockPool.Wait(waitTimeout) - blockPool.Stop() - blockPoolTester.refBlockChain[3] = []int{} - blockPoolTester.checkBlockChain(blockPoolTester.refBlockChain) - if len(peer1.peerErrors) == 1 { - if peer1.peerErrors[0] != ErrInvalidPoW { - t.Errorf("wrong error, expected %v, got %v", ErrInvalidPoW, peer1.peerErrors[0]) - } - } else { - t.Errorf("expected %v error, got %v", ErrInvalidPoW, peer1.peerErrors) - } -} - -func TestUnrequestedBlock(t *testing.T) { - t.Skip() // :FIXME: - - _, blockPool, blockPoolTester := newTestBlockPool(t) - blockPoolTester.blockChain[0] = nil - blockPool.Start() - - peer1 := blockPoolTester.newPeer("peer1", 1, 3) - peer1.AddPeer() - peer1.sendBlocks(1, 2) - - blockPool.Stop() - if len(peer1.peerErrors) == 1 { - if peer1.peerErrors[0] != ErrUnrequestedBlock { - t.Errorf("wrong error, got %v, expected %v", peer1.peerErrors[0], ErrUnrequestedBlock) - } - } else { - t.Errorf("expected %v error, got %v", ErrUnrequestedBlock, peer1.peerErrors) - } -} - -func TestErrInsufficientChainInfo(t *testing.T) { - _, blockPool, blockPoolTester := newTestBlockPool(t) - blockPool.Config.BlockHashesTimeout = 100 * time.Millisecond - blockPool.Start() - - peer1 := blockPoolTester.newPeer("peer1", 1, 3) - peer1.AddPeer() - - blockPool.Wait(waitTimeout) - blockPool.Stop() - if len(peer1.peerErrors) == 1 { - if peer1.peerErrors[0] != ErrInsufficientChainInfo { - t.Errorf("wrong error, got %v, expected %v", peer1.peerErrors[0], ErrInsufficientChainInfo) - } - } else { - t.Errorf("expected %v error, got %v", ErrInsufficientChainInfo, peer1.peerErrors) - } -} - -func TestIncorrectTD(t *testing.T) { - _, blockPool, blockPoolTester := newTestBlockPool(t) - blockPoolTester.blockChain[0] = nil - blockPoolTester.initRefBlockChain(3) - - blockPool.Start() - - peer1 := blockPoolTester.newPeer("peer1", 1, 3) - peer1.AddPeer() - go peer1.serveBlocks(2, 3) - go peer1.serveBlockHashes(3, 2, 1, 0) - peer1.serveBlocks(0, 1, 2) - - blockPool.Wait(waitTimeout) - blockPool.Stop() - blockPoolTester.refBlockChain[3] = []int{} - blockPoolTester.checkBlockChain(blockPoolTester.refBlockChain) - if len(peer1.peerErrors) == 1 { - if peer1.peerErrors[0] != ErrIncorrectTD { - t.Errorf("wrong error, got %v, expected %v", peer1.peerErrors[0], ErrIncorrectTD) - } - } else { - t.Errorf("expected %v error, got %v", ErrIncorrectTD, peer1.peerErrors) - } -} - -func TestSkipIncorrectTDonFutureBlocks(t *testing.T) { - _, blockPool, blockPoolTester := newTestBlockPool(t) - blockPoolTester.blockChain[0] = nil - blockPoolTester.initRefBlockChain(3) - - blockPool.insertChain = func(blocks types.Blocks) error { - err := blockPoolTester.insertChain(blocks) - if err == nil { - for _, block := range blocks { - if block.Td.Cmp(common.Big3) == 0 { - block.Td = common.Big3 - block.SetQueued(true) - break - } - } - } - return err - } - - blockPool.Start() - - peer1 := blockPoolTester.newPeer("peer1", 3, 3) - peer1.AddPeer() - go peer1.serveBlocks(2, 3) - go peer1.serveBlockHashes(3, 2, 1, 0) - peer1.serveBlocks(0, 1, 2) - - blockPool.Wait(waitTimeout) - blockPool.Stop() - blockPoolTester.refBlockChain[3] = []int{} - blockPoolTester.checkBlockChain(blockPoolTester.refBlockChain) - if len(peer1.peerErrors) > 0 { - t.Errorf("expected no error, got %v (1 of %v)", peer1.peerErrors[0], len(peer1.peerErrors)) - } -} - -func TestPeerSuspension(t *testing.T) { - _, blockPool, blockPoolTester := newTestBlockPool(t) - blockPool.Config.PeerSuspensionInterval = 100 * time.Millisecond - - blockPool.Start() - - peer1 := blockPoolTester.newPeer("peer1", 3, 3) - peer1.AddPeer() - bestpeer, _ := blockPool.peers.getPeer("peer1") - if bestpeer == nil { - t.Errorf("peer1 not best peer") - return - } - peer1.serveBlocks(2, 3) - - blockPool.peers.peerError("peer1", 0, "") - bestpeer, _ = blockPool.peers.getPeer("peer1") - if bestpeer != nil { - t.Errorf("peer1 not removed on error") - return - } - peer1.AddPeer() - bestpeer, _ = blockPool.peers.getPeer("peer1") - if bestpeer != nil { - t.Errorf("peer1 not removed on reconnect") - return - } - time.Sleep(100 * time.Millisecond) - peer1.AddPeer() - - bestpeer, _ = blockPool.peers.getPeer("peer1") - if bestpeer == nil { - t.Errorf("peer1 not connected after PeerSuspensionInterval") - return - } - blockPool.Stop() - -} |