functional-tester/

directory
v3.3.0-rc.0.0...-d8dc29e Latest Latest
Warning

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

Go to latest
Published: Apr 3, 2018 License: Apache-2.0

README

etcd functional test suite

etcd functional test suite tests the functionality of an etcd cluster with a focus on failure resistance under high pressure. It sets up an etcd cluster and inject failures into the cluster by killing the process or isolate the network of the process. It expects the etcd cluster to recover within a short amount of time after fixing the fault.

etcd functional test suite has two components: etcd-agent and etcd-tester. etcd-agent runs on every test machines and etcd-tester is a single controller of the test. etcd-tester controls all the etcd-agent to start etcd clusters and simulate various failure cases.

Requirements

The environment of the cluster must be stable enough, so etcd test suite can assume that most of the failures are generated by itself.

etcd agent

etcd agent is a daemon on each machines. It can start, stop, restart, isolate and terminate an etcd process. The agent exposes these functionality via HTTP RPC.

etcd tester

etcd functional tester control the progress of the functional tests. It calls the RPC of the etcd agent to simulate various test cases. For example, it can start a three members cluster by sending three start RPC calls to three different etcd agents. It can make one of the member failed by sending stop RPC call to one etcd agent.

Run locally
PASSES=functional ./test
Run with Docker

To run locally, first build tester image:

pushd ../..
make build-docker-functional-tester
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

Directories

Path Synopsis
Package agent implements functional-tester agent server.
Package agent implements functional-tester agent server.
cmd
etcd-agent
etcd-agent is a program that runs functional-tester agent.
etcd-agent is a program that runs functional-tester agent.
etcd-runner
etcd-runner is a program for testing etcd clientv3 features against a fault injected cluster.
etcd-runner is a program for testing etcd clientv3 features against a fault injected cluster.
etcd-tester
etcd-tester is a program that runs functional-tester client.
etcd-tester is a program that runs functional-tester client.
Package rpcpb is a generated protocol buffer package.
Package rpcpb is a generated protocol buffer package.
Package runner implements individual etcd-runner commands for the etcd-runner utility.
Package runner implements individual etcd-runner commands for the etcd-runner utility.
Package tester implements functional-tester tester server.
Package tester implements functional-tester tester server.

Jump to

Keyboard shortcuts

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