Documentation ¶
Index ¶
- Constants
- type Components
- type Option
- type Swamp
- func (s *Swamp) Connect(t *testing.T, peerA, peerB peer.ID)
- func (s *Swamp) Disconnect(t *testing.T, peerA, peerB peer.ID)
- func (s *Swamp) FillBlocks(ctx context.Context, bsize, blocks int) chan error
- func (s *Swamp) GetCoreBlockHashByHeight(ctx context.Context, height int64) bytes.HexBytes
- func (s *Swamp) NewBridgeNode(options ...fx.Option) *nodebuilder.Node
- func (s *Swamp) NewFullNode(options ...fx.Option) *nodebuilder.Node
- func (s *Swamp) NewLightNode(options ...fx.Option) *nodebuilder.Node
- func (s *Swamp) NewNodeWithConfig(nodeType node.Type, cfg *nodebuilder.Config, options ...fx.Option) *nodebuilder.Node
- func (s *Swamp) NewNodeWithStore(t node.Type, store nodebuilder.Store, options ...fx.Option) *nodebuilder.Node
- func (s *Swamp) RemoveNode(n *nodebuilder.Node, t node.Type) error
- func (s *Swamp) WaitTillHeight(ctx context.Context, height int64) bytes.HexBytes
Constants ¶
const DefaultTestTimeout = time.Minute * 5
DefaultTestTimeout should be used as the default timout on all the Swamp tests. It's generously set to 5 minutes to give enough time for CI.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Components ¶
Components struct represents a set of pre-requisite attributes from the test scenario
func DefaultComponents ¶
func DefaultComponents() *Components
DefaultComponents creates a KvStore with a block retention of 200 In addition, the empty block interval is set to 200ms
type Option ¶
type Option func(*Components)
Option for modifying Swamp's Config.
func WithBlockTime ¶
WithBlockTime sets a custom interval for block creation.
type Swamp ¶
type Swamp struct { Network mocknet.Mocknet BridgeNodes []*nodebuilder.Node FullNodes []*nodebuilder.Node LightNodes []*nodebuilder.Node ClientContext testnode.Context // contains filtered or unexported fields }
Swamp represents the main functionality that is needed for the test-case: - Network to link the nodes - CoreClient to share between Bridge nodes - Slices of created Bridge/Full/Light Nodes - trustedHash taken from the CoreClient and shared between nodes
func (*Swamp) Disconnect ¶
Disconnect allows to break a connection between two peers without any possibility to re-establish it. Order is very important here. We have to unlink peers first, and only after that call disconnect. This is hard disconnect and peers will not be able to reconnect. In order to reconnect peers again, please use swamp.Connect
func (*Swamp) FillBlocks ¶
FillBlocks produces the given amount of contiguous blocks with customizable size. The returned channel reports when the process is finished.
func (*Swamp) GetCoreBlockHashByHeight ¶
GetCoreBlockHashByHeight returns a tendermint block's hash by provided height
func (*Swamp) NewBridgeNode ¶
func (s *Swamp) NewBridgeNode(options ...fx.Option) *nodebuilder.Node
NewBridgeNode creates a new instance of a BridgeNode providing a default config and a mockstore to the NewNodeWithStore method
func (*Swamp) NewFullNode ¶
func (s *Swamp) NewFullNode(options ...fx.Option) *nodebuilder.Node
NewFullNode creates a new instance of a FullNode providing a default config and a mockstore to the NewNodeWithStore method
func (*Swamp) NewLightNode ¶
func (s *Swamp) NewLightNode(options ...fx.Option) *nodebuilder.Node
NewLightNode creates a new instance of a LightNode providing a default config and a mockstore to the NewNodeWithStore method
func (*Swamp) NewNodeWithConfig ¶
func (s *Swamp) NewNodeWithConfig(nodeType node.Type, cfg *nodebuilder.Config, options ...fx.Option) *nodebuilder.Node
func (*Swamp) NewNodeWithStore ¶
func (s *Swamp) NewNodeWithStore( t node.Type, store nodebuilder.Store, options ...fx.Option, ) *nodebuilder.Node
NewNodeWithStore creates a new instance of Node with predefined Store. Afterwards, the instance is stored in the swamp's Nodes' slice according to the node's type provided from the user.
func (*Swamp) RemoveNode ¶
RemoveNode removes a node from the swamp's node slice this allows reusage of the same var in the test scenario if the user needs to stop and start the same node