- package types
-
- import (
- "testing"
- "time"
-
- amino "github.com/tendermint/go-amino"
- "github.com/tendermint/tendermint/crypto/ed25519"
- cmn "github.com/tendermint/tendermint/libs/common"
- "github.com/tendermint/tendermint/types"
- )
-
- func BenchmarkRoundStateDeepCopy(b *testing.B) {
- b.StopTimer()
-
- // Random validators
- nval, ntxs := 100, 100
- vset, _ := types.RandValidatorSet(nval, 1)
- precommits := make([]*types.Vote, nval)
- blockID := types.BlockID{
- Hash: cmn.RandBytes(20),
- PartsHeader: types.PartSetHeader{
- Hash: cmn.RandBytes(20),
- },
- }
- sig := ed25519.SignatureEd25519{}
- for i := 0; i < nval; i++ {
- precommits[i] = &types.Vote{
- ValidatorAddress: types.Address(cmn.RandBytes(20)),
- Timestamp: time.Now(),
- BlockID: blockID,
- Signature: sig,
- }
- }
- txs := make([]types.Tx, ntxs)
- for i := 0; i < ntxs; i++ {
- txs[i] = cmn.RandBytes(100)
- }
- // Random block
- block := &types.Block{
- Header: types.Header{
- ChainID: cmn.RandStr(12),
- Time: time.Now(),
- LastBlockID: blockID,
- LastCommitHash: cmn.RandBytes(20),
- DataHash: cmn.RandBytes(20),
- ValidatorsHash: cmn.RandBytes(20),
- ConsensusHash: cmn.RandBytes(20),
- AppHash: cmn.RandBytes(20),
- LastResultsHash: cmn.RandBytes(20),
- EvidenceHash: cmn.RandBytes(20),
- },
- Data: types.Data{
- Txs: txs,
- },
- Evidence: types.EvidenceData{},
- LastCommit: &types.Commit{
- BlockID: blockID,
- Precommits: precommits,
- },
- }
- parts := block.MakePartSet(4096)
- // Random Proposal
- proposal := &types.Proposal{
- Timestamp: time.Now(),
- BlockPartsHeader: types.PartSetHeader{
- Hash: cmn.RandBytes(20),
- },
- POLBlockID: blockID,
- Signature: sig,
- }
- // Random HeightVoteSet
- // TODO: hvs :=
-
- rs := &RoundState{
- StartTime: time.Now(),
- CommitTime: time.Now(),
- Validators: vset,
- Proposal: proposal,
- ProposalBlock: block,
- ProposalBlockParts: parts,
- LockedBlock: block,
- LockedBlockParts: parts,
- ValidBlock: block,
- ValidBlockParts: parts,
- Votes: nil, // TODO
- LastCommit: nil, // TODO
- LastValidators: vset,
- }
- b.StartTimer()
-
- for i := 0; i < b.N; i++ {
- amino.DeepCopy(rs)
- }
- }
|