testsetups

package
v1.3.2 Latest Latest
Warning

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

Go to latest
Published: Jun 22, 2022 License: MIT Imports: 21 Imported by: 1

Documentation

Overview

Package testsetups compresses common test setups and more complicated setups like performance and chaos tests.

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultGethSettings = &config.ETHNetwork{
		Name:    "Ethereum Geth dev",
		Type:    blockchain.SimulatedEthNetwork,
		ChainID: 1337,
		PrivateKeys: []string{
			"ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80",
			"59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d",
			"5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a",
		},
		ChainlinkTransactionLimit: 500000,
		Timeout:                   2 * time.Minute,
		MinimumConfirmations:      1,
		GasEstimationBuffer:       10000,
		BlockGasLimit:             40000000,
	}
)

Functions

func Index added in v1.1.22

Index to see barbones running statistics

func ShutDown added in v1.1.22

func ShutDown(w http.ResponseWriter, r *http.Request, _ httprouter.Params)

ShutDown attempts to gracefully shut down the running test

func ShutDownConfirm added in v1.1.22

func ShutDownConfirm(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

ShutDownConfirm requires the user to enter a randomly generated code to shut down the test

func StartRemoteControlServer added in v1.1.22

func StartRemoteControlServer(name string, stopChan chan struct{})

StartRemoteControlServer starts a server to control soak test shut downs. Shutdown signal is sent to the stopChan

Types

type ChainlinkProfileTest added in v1.1.22

type ChainlinkProfileTest struct {
	Inputs       ChainlinkProfileTestInputs
	TestReporter testreporters.ChainlinkProfileTestReporter
	// contains filtered or unexported fields
}

ChainlinkProfileTest runs a piece of code on Chainlink nodes with PPROF enabled, then downloads the PPROF results

func NewChainlinkProfileTest added in v1.1.22

func NewChainlinkProfileTest(inputs ChainlinkProfileTestInputs) *ChainlinkProfileTest

NewChainlinkProfileTest prepares a new keeper Chainlink profiling test to be run

func (*ChainlinkProfileTest) Run added in v1.1.22

func (c *ChainlinkProfileTest) Run()

Run runs the profiling test

func (*ChainlinkProfileTest) Setup added in v1.1.22

Setup prepares contracts for the test

func (*ChainlinkProfileTest) TearDownVals added in v1.1.22

Networks returns the networks that the test is running on

type ChainlinkProfileTestInputs added in v1.1.22

type ChainlinkProfileTestInputs struct {
	ProfileFunction func(client.Chainlink)
	ProfileDuration time.Duration
	ChainlinkNodes  []client.Chainlink
}

ChainlinkProfileTestInputs are the inputs necessary to run a profiling tests

type KeeperBlockTimeTest

type KeeperBlockTimeTest struct {
	Inputs       KeeperBlockTimeTestInputs
	TestReporter testreporters.KeeperBlockTimeTestReporter
	// contains filtered or unexported fields
}

KeeperBlockTimeTest builds a test to check that chainlink nodes are able to upkeep a specified amount of Upkeep contracts within a certain block time

func NewKeeperBlockTimeTest

func NewKeeperBlockTimeTest(inputs KeeperBlockTimeTestInputs) *KeeperBlockTimeTest

NewKeeperBlockTimeTest prepares a new keeper block time test to be run

func (*KeeperBlockTimeTest) Run

func (k *KeeperBlockTimeTest) Run()

Run runs the keeper block time test

func (*KeeperBlockTimeTest) Setup

Setup prepares contracts for the test

func (*KeeperBlockTimeTest) TearDownVals

Networks returns the networks that the test is running on

type KeeperBlockTimeTestInputs

type KeeperBlockTimeTestInputs struct {
	NumberOfContracts      int                               // Number of upkeep contracts
	KeeperRegistrySettings *contracts.KeeperRegistrySettings // Settings of each keeper contract
	Timeout                time.Duration                     // Timeout for the test
	BlockRange             int64                             // How many blocks to run the test for
	BlockInterval          int64                             // Interval of blocks that upkeeps are expected to be performed
	CheckGasToBurn         int64                             // How much gas should be burned on checkUpkeep() calls
	PerformGasToBurn       int64                             // How much gas should be burned on performUpkeep() calls
	ChainlinkNodeFunding   *big.Float                        // Amount of ETH to fund each chainlink node with
}

KeeperBlockTimeTestInputs are all the required inputs for a Keeper Block Time Test

type OCRSoakTest

type OCRSoakTest struct {
	Inputs *OCRSoakTestInputs

	TestReporter testreporters.OCRSoakTestReporter
	// contains filtered or unexported fields
}

OCRSoakTest defines a typical OCR soak test

func NewOCRSoakTest

func NewOCRSoakTest(inputs *OCRSoakTestInputs) *OCRSoakTest

NewOCRSoakTest creates a new OCR soak test to setup and run

func (*OCRSoakTest) Run

func (t *OCRSoakTest) Run()

Run starts the OCR soak test

func (*OCRSoakTest) Setup

func (t *OCRSoakTest) Setup(env *environment.Environment)

Setup sets up the test environment, deploying contracts and funding chainlink nodes

func (*OCRSoakTest) TearDownVals

Networks returns the networks that the test is running on

type OCRSoakTestInputs

type OCRSoakTestInputs struct {
	TestDuration         time.Duration // How long to run the test for (assuming things pass)
	NumberOfContracts    int           // Number of OCR contracts to launch
	ChainlinkNodeFunding *big.Float    // Amount of ETH to fund each chainlink node with
	RoundTimeout         time.Duration // How long to wait for a round to update before failing the test
	ExpectedRoundTime    time.Duration // How long each round is expected to take
	TimeBetweenRounds    time.Duration // How long to wait after a completed round to start a new one, set 0 for instant
	StartingAdapterValue int
}

OCRSoakTestInputs define required inputs to run an OCR soak test

type VRFV2SoakTest added in v1.2.4

type VRFV2SoakTest struct {
	Inputs *VRFV2SoakTestInputs

	TestReporter testreporters.VRFV2SoakTestReporter

	ChainlinkNodes []client.Chainlink

	DefaultNetwork blockchain.EVMClient

	NumberOfRequests int

	ErrorOccurred error
	ErrorCount    int
	// contains filtered or unexported fields
}

VRFV2SoakTest defines a typical VRFV2 soak test

func NewVRFV2SoakTest added in v1.2.4

func NewVRFV2SoakTest(inputs *VRFV2SoakTestInputs) *VRFV2SoakTest

NewVRFV2SoakTest creates a new vrfv2 soak test to setup and run

func (*VRFV2SoakTest) Run added in v1.2.4

func (t *VRFV2SoakTest) Run()

Run starts the VRFV2 soak test

func (*VRFV2SoakTest) Setup added in v1.2.4

func (t *VRFV2SoakTest) Setup(env *environment.Environment, isLocal bool)

Setup sets up the test environment

func (*VRFV2SoakTest) TearDownVals added in v1.2.4

Networks returns the networks that the test is running on

type VRFV2SoakTestInputs added in v1.2.4

type VRFV2SoakTestInputs struct {
	TestDuration         time.Duration // How long to run the test for (assuming things pass)
	ChainlinkNodeFunding *big.Float    // Amount of ETH to fund each chainlink node with
	StopTestOnError      bool          // Do we want the test to stop after any error or just continue on

	RequestsPerMinute int                   // Number of requests for randomness per minute
	TestFunc          VRFV2SoakTestTestFunc // The function that makes the request and validations wanted
}

VRFV2SoakTestInputs define required inputs to run a vrfv2 soak test

type VRFV2SoakTestJobInfo added in v1.2.4

type VRFV2SoakTestJobInfo struct {
	Job            *client.Job
	ProvingKey     [2]*big.Int
	ProvingKeyHash [32]byte
}

VRFV2SoakTestJobInfo defines a jobs into and proving key info

type VRFV2SoakTestTestFunc added in v1.2.4

type VRFV2SoakTestTestFunc func(t *VRFV2SoakTest, requestNumber int) error

VRFV2SoakTestTestFunc function type for the request and validation you want done on each iteration

Jump to

Keyboard shortcuts

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