Gyuho Lee d8a2d3a209 functional/tester: delay after injecting "kill" to trigger election 7 lat temu
..
agent cafa3b9217 functional/agent: handle static TLS certs 7 lat temu
cmd 85e050a120 *: rename, clean up functional tests 7 lat temu
rpcpb 68adc6e300 functional/rpcpb: document FailureCase 7 lat temu
runner 85e050a120 *: rename, clean up functional tests 7 lat temu
scripts 85e050a120 *: rename, clean up functional tests 7 lat temu
tester d8a2d3a209 functional/tester: delay after injecting "kill" to trigger election 7 lat temu
README.md 85e050a120 *: rename, clean up functional tests 7 lat temu
build 85e050a120 *: rename, clean up functional tests 7 lat temu

README.md

etcd Functional Testing

functional verifies the correct behavior of etcd under various system and network malfunctions. It sets up an etcd cluster under high pressure loads and continuously injects failures into the cluster. Then it expects the etcd cluster to recover within a few seconds. This has been extremely helpful to find critical bugs.

See functional.yaml for an example configuration.

Run locally

PASSES=functional ./test

Run with Docker

pushd ../..
make build-docker-functional
popd

And run example scripts.

# run 3 agents for 3-node local etcd cluster
./scripts/docker-local-agent.sh 1
./scripts/docker-local-agent.sh 2
./scripts/docker-local-agent.sh 3

# to run only 1 tester round
./scripts/docker-local-tester.sh