- package main
-
- import (
- "fmt"
- "time"
-
- e2e "github.com/tendermint/tendermint/test/e2e/pkg"
- )
-
- // 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
- }
- return WaitUntil(testnet, block.Height+blocks)
- }
-
- // WaitUntil waits until a given height has been reached.
- func WaitUntil(testnet *e2e.Testnet, height int64) error {
- logger.Info(fmt.Sprintf("Waiting for all nodes to reach height %v...", height))
- _, err := waitForAllNodes(testnet, height, waitingTime(len(testnet.Nodes)))
- if err != nil {
- return err
- }
- return nil
- }
-
- // waitingTime estimates how long it should take for a node to reach the height.
- // More nodes in a network implies we may expect a slower network and may have to wait longer.
- func waitingTime(nodes int) time.Duration {
- return time.Duration(20+(nodes*4)) * time.Second
- }
|