diff options
author | Jimmy Hu <jimmy.hu@dexon.org> | 2018-11-13 09:43:28 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-13 09:43:28 +0800 |
commit | 206cdb5b68d3226eb4a771b374093a51999b3b17 (patch) | |
tree | 88c4f8af7e15e23010676d9988fa3442167d3c17 /core/leader-selector_test.go | |
parent | f2e1d268fff6815240d70f77e9b4fad6f96bd008 (diff) | |
download | dexon-consensus-206cdb5b68d3226eb4a771b374093a51999b3b17.tar dexon-consensus-206cdb5b68d3226eb4a771b374093a51999b3b17.tar.gz dexon-consensus-206cdb5b68d3226eb4a771b374093a51999b3b17.tar.bz2 dexon-consensus-206cdb5b68d3226eb4a771b374093a51999b3b17.tar.lz dexon-consensus-206cdb5b68d3226eb4a771b374093a51999b3b17.tar.xz dexon-consensus-206cdb5b68d3226eb4a771b374093a51999b3b17.tar.zst dexon-consensus-206cdb5b68d3226eb4a771b374093a51999b3b17.zip |
core: Reduce call to Application.VerifyBlock (#317)
Diffstat (limited to 'core/leader-selector_test.go')
-rw-r--r-- | core/leader-selector_test.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/core/leader-selector_test.go b/core/leader-selector_test.go index f2c88f1..2edad60 100644 --- a/core/leader-selector_test.go +++ b/core/leader-selector_test.go @@ -150,6 +150,34 @@ func (s *LeaderSelectorTestSuite) TestValidLeaderFn() { s.Len(leader.pendingBlocks, 0) } +func (s *LeaderSelectorTestSuite) TestPotentialLeader() { + leader := s.newLeader() + blocks := make(map[common.Hash]*types.Block) + for i := 0; i < 10; i++ { + if i > 0 { + s.mockValidLeaderDefault = false + } + prv, err := ecdsa.NewPrivateKey() + s.Require().NoError(err) + block := &types.Block{ + ProposerID: types.NewNodeID(prv.PublicKey()), + Hash: common.NewRandomHash(), + } + s.Require().NoError( + NewAuthenticator(prv).SignCRS(block, leader.hashCRS)) + ok, _ := leader.potentialLeader(block) + s.Require().NoError(leader.processBlock(block)) + if i > 0 { + if ok { + s.Contains(leader.pendingBlocks, block) + } else { + s.NotContains(leader.pendingBlocks, block) + } + blocks[block.Hash] = block + } + } +} + func TestLeaderSelector(t *testing.T) { suite.Run(t, new(LeaderSelectorTestSuite)) } |