mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-19 13:21:37 +00:00
71 lines
1.7 KiB
Go
71 lines
1.7 KiB
Go
package XDPoS
|
|
|
|
import (
|
|
"math/big"
|
|
"testing"
|
|
|
|
"github.com/XinFinOrg/XDPoSChain/common"
|
|
"github.com/XinFinOrg/XDPoSChain/consensus/XDPoS/utils"
|
|
"github.com/XinFinOrg/XDPoSChain/core/types"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestCalculateSignersVote(t *testing.T) {
|
|
info := make(map[string]SignerTypes)
|
|
votes := utils.NewPool()
|
|
masternodes := []common.Address{{1}, {2}, {3}}
|
|
|
|
vote1 := types.Vote{
|
|
Signature: types.Signature{1},
|
|
ProposedBlockInfo: &types.BlockInfo{
|
|
Hash: common.Hash{1},
|
|
Round: types.Round(10),
|
|
Number: big.NewInt(910),
|
|
},
|
|
GapNumber: 450,
|
|
}
|
|
vote1.SetSigner(common.Address{1})
|
|
|
|
vote2 := types.Vote{
|
|
Signature: types.Signature{2},
|
|
ProposedBlockInfo: &types.BlockInfo{
|
|
Hash: common.Hash{1},
|
|
Round: types.Round(10),
|
|
Number: big.NewInt(910),
|
|
},
|
|
GapNumber: 450,
|
|
}
|
|
vote2.SetSigner(common.Address{2})
|
|
|
|
votes.Add(&vote1)
|
|
votes.Add(&vote2)
|
|
|
|
calculateSigners(info, votes.Get(), masternodes)
|
|
assert.Equal(t, info["10:450:910:0x0100000000000000000000000000000000000000000000000000000000000000"].CurrentNumber, 2)
|
|
}
|
|
|
|
func TestCalculateSignersTimeout(t *testing.T) {
|
|
info := make(map[string]SignerTypes)
|
|
timeouts := utils.NewPool()
|
|
masternodes := []common.Address{{1}, {2}, {3}}
|
|
|
|
timeout1 := types.Timeout{
|
|
Signature: types.Signature{1},
|
|
Round: types.Round(10),
|
|
GapNumber: 450,
|
|
}
|
|
timeout1.SetSigner(common.Address{1})
|
|
|
|
timeout2 := types.Timeout{
|
|
Signature: types.Signature{2},
|
|
Round: types.Round(10),
|
|
GapNumber: 450,
|
|
}
|
|
timeout1.SetSigner(common.Address{2})
|
|
|
|
timeouts.Add(&timeout1)
|
|
timeouts.Add(&timeout2)
|
|
|
|
calculateSigners(info, timeouts.Get(), masternodes)
|
|
assert.Equal(t, info["10:450"].CurrentNumber, 2)
|
|
}
|