aboutsummaryrefslogtreecommitdiffstats
path: root/core/leader-selector_test.go
diff options
context:
space:
mode:
authorJimmy Hu <jimmy.hu@dexon.org>2018-11-13 09:43:28 +0800
committerGitHub <noreply@github.com>2018-11-13 09:43:28 +0800
commit206cdb5b68d3226eb4a771b374093a51999b3b17 (patch)
tree88c4f8af7e15e23010676d9988fa3442167d3c17 /core/leader-selector_test.go
parentf2e1d268fff6815240d70f77e9b4fad6f96bd008 (diff)
downloaddexon-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.go28
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))
}