Added tests for applying consensus param changes

This commit is contained in:
Ethan Frey
2017-12-19 12:28:08 -05:00
committed by Ethan Buchman
parent d21f39160f
commit 030fd00232
3 changed files with 104 additions and 39 deletions
-38
View File
@@ -2,8 +2,6 @@ package types
import (
"github.com/pkg/errors"
abci "github.com/tendermint/abci/types"
)
const (
@@ -18,42 +16,6 @@ type ConsensusParams struct {
BlockGossipParams `json:"block_gossip_params"`
}
// ApplyChanges returns a new param set, overriding any
// parameter that is non-zero in argument
func (p ConsensusParams) ApplyChanges(c *abci.ConsensusParams) ConsensusParams {
if c == nil {
return p
}
res := p
// we must defensively consider any structs may be nil
if c.BlockSizeParams != nil {
if c.BlockSizeParams.MaxBytes != 0 {
res.BlockSizeParams.MaxBytes = int(c.BlockSizeParams.MaxBytes)
}
if c.BlockSizeParams.MaxTxs != 0 {
res.BlockSizeParams.MaxTxs = int(c.BlockSizeParams.MaxTxs)
}
if c.BlockSizeParams.MaxGas != 0 {
res.BlockSizeParams.MaxGas = int(c.BlockSizeParams.MaxGas)
}
}
if c.TxSizeParams != nil {
if c.TxSizeParams.MaxBytes != 0 {
res.TxSizeParams.MaxBytes = int(c.TxSizeParams.MaxBytes)
}
if c.TxSizeParams.MaxGas != 0 {
res.TxSizeParams.MaxGas = int(c.TxSizeParams.MaxGas)
}
}
if c.BlockGossipParams != nil {
if c.BlockGossipParams.BlockPartSizeBytes != 0 {
res.BlockGossipParams.BlockPartSizeBytes = int(c.BlockGossipParams.BlockPartSizeBytes)
}
}
return res
}
// BlockSizeParams contain limits on the block size.
type BlockSizeParams struct {
MaxBytes int `json:"max_bytes"` // NOTE: must not be 0 nor greater than 100MB