mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-22 17:31:34 +00:00
test CreateEmptyBlocksInterval
This commit is contained in:
@ -31,7 +31,7 @@ import (
|
|||||||
|
|
||||||
// genesis, chain_id, priv_val
|
// genesis, chain_id, priv_val
|
||||||
var config *cfg.Config // NOTE: must be reset for each _test.go file
|
var config *cfg.Config // NOTE: must be reset for each _test.go file
|
||||||
var ensureTimeout = time.Duration(2)
|
var ensureTimeout = time.Second * 2
|
||||||
|
|
||||||
func ensureDir(dir string, mode os.FileMode) {
|
func ensureDir(dir string, mode os.FileMode) {
|
||||||
if err := EnsureDir(dir, mode); err != nil {
|
if err := EnsureDir(dir, mode); err != nil {
|
||||||
@ -297,7 +297,7 @@ func randConsensusState(nValidators int) (*ConsensusState, []*validatorStub) {
|
|||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
|
|
||||||
func ensureNoNewStep(stepCh chan interface{}) {
|
func ensureNoNewStep(stepCh chan interface{}) {
|
||||||
timer := time.NewTimer(ensureTimeout * time.Second)
|
timer := time.NewTimer(ensureTimeout)
|
||||||
select {
|
select {
|
||||||
case <-timer.C:
|
case <-timer.C:
|
||||||
break
|
break
|
||||||
@ -307,7 +307,7 @@ func ensureNoNewStep(stepCh chan interface{}) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ensureNewStep(stepCh chan interface{}) {
|
func ensureNewStep(stepCh chan interface{}) {
|
||||||
timer := time.NewTimer(ensureTimeout * time.Second)
|
timer := time.NewTimer(ensureTimeout)
|
||||||
select {
|
select {
|
||||||
case <-timer.C:
|
case <-timer.C:
|
||||||
panic("We shouldnt be stuck waiting")
|
panic("We shouldnt be stuck waiting")
|
||||||
|
@ -34,6 +34,21 @@ func TestNoProgressUntilTxsAvailable(t *testing.T) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestProgressAfterCreateEmptyBlocksInterval(t *testing.T) {
|
||||||
|
config := ResetConfig("consensus_mempool_txs_available_test")
|
||||||
|
config.Consensus.CreateEmptyBlocksInterval = int(ensureTimeout.Seconds())
|
||||||
|
state, privVals := randGenesisState(1, false, 10)
|
||||||
|
cs := newConsensusStateWithConfig(config, state, privVals[0], NewCounterApplication())
|
||||||
|
cs.mempool.EnableTxsAvailable()
|
||||||
|
height, round := cs.Height, cs.Round
|
||||||
|
newBlockCh := subscribeToEvent(cs.evsw, "tester", types.EventStringNewBlock(), 1)
|
||||||
|
startTestRound(cs, height, round)
|
||||||
|
|
||||||
|
ensureNewStep(newBlockCh) // first block gets committed
|
||||||
|
ensureNoNewStep(newBlockCh) // then we dont make a block ...
|
||||||
|
ensureNewStep(newBlockCh) // until the CreateEmptyBlocksInterval has passed
|
||||||
|
}
|
||||||
|
|
||||||
func TestProgressInHigherRound(t *testing.T) {
|
func TestProgressInHigherRound(t *testing.T) {
|
||||||
config := ResetConfig("consensus_mempool_txs_available_test")
|
config := ResetConfig("consensus_mempool_txs_available_test")
|
||||||
config.Consensus.CreateEmptyBlocks = false
|
config.Consensus.CreateEmptyBlocks = false
|
||||||
|
Reference in New Issue
Block a user