e2e

package
v1.11.6-charlie Latest Latest
Warning

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

Go to latest
Published: May 25, 2024 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

	DefaultPollingInterval = tmpnet.DefaultPollingInterval

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

	DefaultValidatorStartTimeDiff = tmpnet.DefaultValidatorStartTimeDiff

	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

Adds an ephemeral node intended to be used by a single test.

func CheckBootstrapIsPossible

func CheckBootstrapIsPossible(network *tmpnet.Network)

Verify that a new node can bootstrap into the network. This function is safe to call from `Teardown` by virtue of not depending on ginkgo.DeferCleanup.

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 StartNetwork

func StartNetwork(network *tmpnet.Network, rootNetworkDir string, avalancheGoExecPath string, pluginDir string)

Start a temporary network with the provided avalanchego 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) AvalancheGoExecPath

func (v *FlagVars) AvalancheGoExecPath() string

func (*FlagVars) NetworkDir

func (v *FlagVars) NetworkDir() string

func (*FlagVars) PluginDir

func (v *FlagVars) PluginDir() 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, desiredNetwork *tmpnet.Network) *TestEnvironment

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

func (*TestEnvironment) AllocatePreFundedKey

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

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

func (*TestEnvironment) AllocatePreFundedKeys

func (te *TestEnvironment) AllocatePreFundedKeys(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