chaosmonkey

package
v0.0.0-...-4f90778 Latest Latest
Warning

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

Go to latest
Published: Jul 2, 2024 License: Apache-2.0 Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New(disruption Disruption) *chaosmonkey

New creates and returns a chaosmonkey, with which the caller should register Tests and call Do. See Do for more information.

Types

type Disruption

type Disruption func()

Disruption is the type to construct a chaosmonkey with; see Do for more information.

type Interface

type Interface interface {
	Setup()
	Test(stopCh <-chan struct{})
	Teardown()
}

Interface can be implemented if you prefer to define tests without dealing with a Semaphore. You may define a struct that implements Interface's three methods (Setup, Test, and Teardown) and RegisterInterface. See RegisterInterface for more information.

type Semaphore

type Semaphore struct {
	StopCh <-chan struct{}
	// contains filtered or unexported fields
}

Semaphore is taken by a Test and provides: Ready(), for the Test to call when it's ready for the disruption to start; and StopCh, the closure of which signals to the Test that the disruption is finished.

func (*Semaphore) Ready

func (sem *Semaphore) Ready()

Ready is called by the Test to signal that the Test is ready for the disruption to start.

type Test

type Test func(sem *Semaphore)

Test is the type to register with a chaosmonkey. A test will run asynchronously across the chaosmonkey's Disruption. A Test takes a Semaphore as an argument. It should call sem.Ready() once it's ready for the disruption to start and should then wait until sem.StopCh (which is a <-chan struct{}) is closed, which signals that the disruption is over. It should then clean up and return. See Do and Semaphore for more information.

Jump to

Keyboard shortcuts

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