Documentation
¶
Overview ¶
Package types includes important structs used by end to end tests, such as a configuration type, an evaluator type, and more.
Index ¶
- func GenesisFork() int
- func StartAt(v int, c *params.BeaconChainConfig) *params.BeaconChainConfig
- type BeaconNodeSet
- type ComponentRunner
- type DepositBalancer
- type DepositBatch
- type E2EConfig
- type E2EConfigOpt
- type EmptyComponent
- type EngineProxy
- type EvaluationContext
- type Evaluator
- type MultipleComponentRunners
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GenesisFork ¶
func GenesisFork() int
func StartAt ¶
func StartAt(v int, c *params.BeaconChainConfig) *params.BeaconChainConfig
Types ¶
type BeaconNodeSet ¶
type BeaconNodeSet interface {
ComponentRunner
// SetENR provides the relevant bootnode's enr to the beacon nodes.
SetENR(enr string)
}
BeaconNodeSet defines an interface for an object that fulfills the duties of a group of beacon nodes.
type ComponentRunner ¶
type ComponentRunner interface {
// Start starts a component.
Start(ctx context.Context) error
// Started checks whether an underlying component is started and ready to be queried.
Started() <-chan struct{}
// Pause pauses a component.
Pause() error
// Resume resumes a component.
Resume() error
// Stop stops a component.
Stop() error
// UnderlyingProcess is the underlying process, once started.
UnderlyingProcess() *os.Process
}
ComponentRunner defines an interface via which E2E component's configuration, execution and termination is managed.
type DepositBalancer ¶
type DepositBalancer interface {
Balances(DepositBatch) map[[field_params.DilithiumPubkeyLength]byte]uint64
}
DepositBalancer represents a type that can sum, by validator, all deposits made in E2E prior to the function call.
type DepositBatch ¶
type DepositBatch int
DepositBatch represents a group of deposits that are sent together during an e2e run.
const ( // GenesisDepositBatch deposits are sent to populate the initial set of validators for genesis. GenesisDepositBatch DepositBatch // PostGenesisDepositBatch deposits are sent to test that deposits appear in blocks as expected // and validators become active. PostGenesisDepositBatch )
type E2EConfig ¶
type E2EConfig struct {
// TestCheckpointSync bool
TestSync bool
TestFeature bool
UseQrysmShValidator bool
UsePprof bool
// UseWeb3RemoteSigner bool
TestDeposits bool
UseFixedPeerIDs bool
UseBeaconRestApi bool
UseBuilder bool
EpochsToRun uint64
Seed int64
TracingSinkEndpoint string
Evaluators []Evaluator
EvalInterceptor func(*EvaluationContext, uint64, []*grpc.ClientConn) bool
BeaconFlags []string
ValidatorFlags []string
PeerIDs []string
ExtraEpochs uint64
}
E2EConfig defines the struct for all configurations needed for E2E testing.
type E2EConfigOpt ¶
type E2EConfigOpt func(*E2EConfig)
func WithBuilder ¶
func WithBuilder() E2EConfigOpt
func WithEpochs ¶
func WithEpochs(e uint64) E2EConfigOpt
func WithValidatorRESTApi ¶
func WithValidatorRESTApi() E2EConfigOpt
type EmptyComponent ¶
EmptyComponent satisfies the component interface. It can be embedded in other types in order to turn them into components.
func (*EmptyComponent) Pause ¶
func (*EmptyComponent) Pause() error
func (*EmptyComponent) Resume ¶
func (*EmptyComponent) Resume() error
func (*EmptyComponent) Started ¶
func (c *EmptyComponent) Started() <-chan struct{}
func (*EmptyComponent) Stop ¶
func (*EmptyComponent) Stop() error
type EngineProxy ¶
type EngineProxy interface {
ComponentRunner
// AddRequestInterceptor adds in a json-rpc request interceptor.
AddRequestInterceptor(rpcMethodName string, responseGen func() interface{}, trigger func() bool)
// RemoveRequestInterceptor removes the request interceptor for the provided method.
RemoveRequestInterceptor(rpcMethodName string)
// ReleaseBackedUpRequests releases backed up http requests.
ReleaseBackedUpRequests(rpcMethodName string)
}
type EvaluationContext ¶
type EvaluationContext struct {
DepositBalancer
ExitedVals map[[field_params.DilithiumPubkeyLength]byte]bool
SeenVotes map[primitives.Slot][]byte
ExpectedEth1DataVote []byte
}
EvaluationContext allows for additional data to be provided to evaluators that need extra state.
func NewEvaluationContext ¶
func NewEvaluationContext(d DepositBalancer) *EvaluationContext
NewEvaluationContext handles initializing internal datastructures (like maps) provided by the EvaluationContext.
type Evaluator ¶
type Evaluator struct {
Name string
Policy func(currentEpoch primitives.Epoch) bool
// Evaluation accepts one or many/all conns, depending on what is needed by the set of evaluators.
Evaluation func(ec *EvaluationContext, conn ...*grpc.ClientConn) error
}
Evaluator defines the structure of the evaluators used to conduct the current beacon state during the E2E.
type MultipleComponentRunners ¶
type MultipleComponentRunners interface {
ComponentRunner
// ComponentAtIndex returns the component at index
ComponentAtIndex(i int) (ComponentRunner, error)
// PauseAtIndex pauses the grouped component element at the desired index.
PauseAtIndex(i int) error
// ResumeAtIndex resumes the grouped component element at the desired index.
ResumeAtIndex(i int) error
// StopAtIndex stops the grouped component element at the desired index.
StopAtIndex(i int) error
}