- package main
-
- import (
- "fmt"
- "time"
-
- e2e "github.com/tendermint/tendermint/test/e2e/pkg"
- )
-
- const interphaseWaitPeriod = 5
-
- // Wait waits for a number of blocks to be produced, and for all nodes to catch
- // up with it.
- func Wait(testnet *e2e.Testnet, blocks int64) error {
- block, _, err := waitForHeight(testnet, 0)
- if err != nil {
- return err
- }
- waitFor := block.Height + blocks
- logger.Info(fmt.Sprintf("Waiting for all nodes to reach height %v...", waitFor))
- _, err = waitForAllNodes(testnet, waitFor, 20*time.Second)
- if err != nil {
- return err
- }
- return nil
- }
-
- // WaitForAllMisbehaviors calculates the height of the last misbehavior and ensures the entire
- // testnet has surpassed this height before moving on to the next phase
- func waitForAllMisbehaviors(testnet *e2e.Testnet) error {
- _, _, err := waitForHeight(testnet, lastMisbehaviorHeight(testnet))
- return err
- }
-
- func lastMisbehaviorHeight(testnet *e2e.Testnet) int64 {
- lastHeight := testnet.InitialHeight
- for _, n := range testnet.Nodes {
- for height := range n.Misbehaviors {
- if height > lastHeight {
- lastHeight = height
- }
- }
- }
- return lastHeight + interphaseWaitPeriod
- }
|