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 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.
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.