From 206cdb5b68d3226eb4a771b374093a51999b3b17 Mon Sep 17 00:00:00 2001 From: Jimmy Hu Date: Tue, 13 Nov 2018 09:43:28 +0800 Subject: core: Reduce call to Application.VerifyBlock (#317) --- core/leader-selector_test.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'core/leader-selector_test.go') 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)) } -- cgit v1.2.3