e2e

package
v1.10.21 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 17, 2023 License: BSD-3-Clause Imports: 27 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// A long default timeout used to timeout failed operations but
	// unlikely to induce flaking due to unexpected resource
	// contention.
	DefaultTimeout = 2 * time.Minute

	// Interval appropriate for network operations that should be
	// retried periodically but not too often.
	DefaultPollingInterval = 500 * time.Millisecond

	// Setting this env will disable post-test bootstrap
	// checks. Useful for speeding up iteration during test
	// development.
	SkipBootstrapChecksEnvName = "E2E_SKIP_BOOTSTRAP_CHECKS"

	// Validator start time must be a minimum of SyncBound from the
	// current time for validator addition to succeed, and adding 20
	// seconds provides a buffer in case of any delay in processing.
	DefaultValidatorStartTimeDiff = executor.SyncBound + 20*time.Second

	DefaultGasLimit = uint64(21000) // Standard gas limit

	// An empty string prompts the use of the default path which ensures a
	// predictable target for github's upload-artifact action.
	DefaultNetworkDir = ""

	// Directory used to store private networks (specific to a single test)
	// under the shared network dir.
	PrivateNetworksDirName = "private_networks"
)
View Source
const (

	// Label for filtering a test that is not primarily a C-Chain test
	// but nonentheless uses the C-Chain. Intended to support
	// execution of all C-Chain tests by the coreth repo in an e2e job.
	UsesCChainLabel = "uses-c"
)

Variables

This section is empty.

Functions

func AddEphemeralNode

func AddEphemeralNode(network tmpnet.Network, flags tmpnet.FlagsMap) tmpnet.Node

Add an ephemeral node that is only intended to be used by a single test. Its ID and URI are not intended to be returned from the Network instance to minimize accessibility from other tests.

func CheckBootstrapIsPossible

func CheckBootstrapIsPossible(network tmpnet.Network)

Verify that a new node can bootstrap into the network.

func ContextWithTimeout

func ContextWithTimeout(duration time.Duration) context.Context

Helper simplifying use of a timed context by canceling the context on ginkgo teardown.

func DefaultContext

func DefaultContext() context.Context

Helper simplifying use of a timed context configured with the default timeout.

func DescribeCChain

func DescribeCChain(text string, args ...interface{}) bool

DescribeCChain annotates the tests for C-Chain.

func DescribePChain

func DescribePChain(text string, args ...interface{}) bool

DescribePChain annotates the tests for P-Chain.

func DescribeXChain

func DescribeXChain(text string, args ...interface{}) bool

DescribeXChain annotates the tests for X-Chain.

func DescribeXChainSerial

func DescribeXChainSerial(text string, args ...interface{}) bool

DescribeXChainSerial annotates serial tests for X-Chain.

func Eventually

func Eventually(condition func() bool, waitFor time.Duration, tick time.Duration, msg string)

Re-implementation of testify/require.Eventually that is compatible with ginkgo. testify's version calls the condition function with a goroutine and ginkgo assertions don't work properly in goroutines.

func InitSharedTestEnvironment

func InitSharedTestEnvironment(envBytes []byte)

func NewEthClient

func NewEthClient(nodeURI tmpnet.NodeURI) ethclient.Client

Create a new eth client targeting the specified node URI.

func NewWallet

func NewWallet(keychain *secp256k1fx.Keychain, nodeURI tmpnet.NodeURI) primary.Wallet

Create a new wallet for the provided keychain against the specified node URI.

func SendEthTransaction

func SendEthTransaction(ethClient ethclient.Client, signedTx *types.Transaction) *types.Receipt

Sends an eth transaction, waits for the transaction receipt to be issued and checks that the receipt indicates success.

func StartLocalNetwork

func StartLocalNetwork(luxdExecPath string, networkDir string) *local.LocalNetwork

Start a local test-managed network with the provided node binary.

func SuggestGasPrice

func SuggestGasPrice(ethClient ethclient.Client) *big.Int

Determines the suggested gas price for the configured client that will maximize the chances of transaction acceptance.

func WaitForHealthy

func WaitForHealthy(node tmpnet.Node)

Wait for the given node to report healthy.

func WithDefaultContext

func WithDefaultContext() common.Option

Helper simplifying use via an option of a timed context configured with the default timeout.

func WithSuggestedGasPrice

func WithSuggestedGasPrice(ethClient ethclient.Client) common.Option

Helper simplifying use via an option of a gas price appropriate for testing.

Types

type FlagVars

type FlagVars struct {
	// contains filtered or unexported fields
}

func RegisterFlags

func RegisterFlags() *FlagVars

func (*FlagVars) LuxdExecPath added in v1.10.20

func (v *FlagVars) LuxdExecPath() string

func (*FlagVars) NetworkDir

func (v *FlagVars) NetworkDir() string

func (*FlagVars) UseExistingNetwork

func (v *FlagVars) UseExistingNetwork() bool

type TestEnvironment

type TestEnvironment struct {
	// The directory where the test network configuration is stored
	NetworkDir string
	// URIs used to access the API endpoints of nodes of the network
	URIs []tmpnet.NodeURI
	// The URI used to access the http server that allocates test data
	TestDataServerURI string
	// contains filtered or unexported fields
}
var Env *TestEnvironment

Env is used to access shared test fixture. Intended to be initialized from SynchronizedBeforeSuite.

func NewTestEnvironment

func NewTestEnvironment(flagVars *FlagVars) *TestEnvironment

Initialize a new test environment with a shared network (either pre-existing or newly created).

func (*TestEnvironment) AllocateFundedKey

func (te *TestEnvironment) AllocateFundedKey() *secp256k1.PrivateKey

Retrieve a funded key allocated for the caller's exclusive use.

func (*TestEnvironment) AllocateFundedKeys

func (te *TestEnvironment) AllocateFundedKeys(count int) []*secp256k1.PrivateKey

Retrieve the specified number of funded keys allocated for the caller's exclusive use.

func (*TestEnvironment) GetNetwork

func (te *TestEnvironment) GetNetwork() tmpnet.Network

Retrieve the network to target for testing.

func (*TestEnvironment) GetRandomNodeURI

func (te *TestEnvironment) GetRandomNodeURI() tmpnet.NodeURI

Retrieve a random URI to naively attempt to spread API load across nodes.

func (*TestEnvironment) Marshal

func (te *TestEnvironment) Marshal() []byte

func (*TestEnvironment) NewKeychain

func (te *TestEnvironment) NewKeychain(count int) *secp256k1fx.Keychain

Create a new keychain with the specified number of test keys.

func (*TestEnvironment) NewPrivateNetwork

func (te *TestEnvironment) NewPrivateNetwork() tmpnet.Network

Create a new private network that is not shared with other tests.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL