From 7f8ffd7dbe11fcadb43fb7f6696e9df9899609c7 Mon Sep 17 00:00:00 2001 From: Anthony Romano Date: Tue, 21 Jun 2016 12:44:11 -0700 Subject: [PATCH] test, build: support failpoints --- build | 22 ++++++++++++++++++++++ test | 5 ++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/build b/build index 61efec54e..37f209e8b 100755 --- a/build +++ b/build @@ -6,6 +6,25 @@ REPO_PATH="${ORG_PATH}/etcd" export GO15VENDOREXPERIMENT="1" eval $(go env) GIT_SHA=`git rev-parse --short HEAD || echo "GitNotFound"` +if [ ! -z "$FAILPOINTS" ]; then + GIT_SHA="$GIT_SHA"-FAILPOINTS +fi + +# enable/disable failpoints +toggle_failpoints() { + FAILPKGS="etcdserver/" + + mode="disable" + if [ ! -z "$FAILPOINTS" ]; then mode="enable"; fi + if [ ! -z "$1" ]; then mode="$1"; fi + + if which gofail >/dev/null 2>&1; then + gofail "$mode" $FAILPKGS + elif [ "$mode" != "disable" ]; then + echo "FAILPOINTS set but gofail not found" + exit 1 + fi +} etcd_build() { if [ -z "${GOARCH}" ] || [ "${GOARCH}" = "$(go env GOHOSTARCH)" ]; then @@ -13,10 +32,13 @@ etcd_build() { else out="bin/${GOARCH}" fi + toggle_failpoints # Static compilation is useful when etcd is run in a container CGO_ENABLED=0 go build $GO_BUILD_FLAGS -installsuffix cgo -ldflags "-s -X ${REPO_PATH}/cmd/vendor/${REPO_PATH}/version.GitSHA=${GIT_SHA}" -o ${out}/etcd ${REPO_PATH}/cmd CGO_ENABLED=0 go build $GO_BUILD_FLAGS -installsuffix cgo -ldflags "-s" -o ${out}/etcdctl ${REPO_PATH}/cmd/etcdctl } +toggle_failpoints + # don't build when sourced (echo "$0" | grep "/build$") && etcd_build || true diff --git a/test b/test index 0e8090a4c..19caa1b8d 100755 --- a/test +++ b/test @@ -168,10 +168,13 @@ mkdir -p $GOPATH ln -s ${PWD}/cmd/vendor $GOPATH/src # fail fast on static tests -GO_BUILD_FLAGS="-a -v" etcd_build +toggle_failpoints disable fmt_tests dep_tests +# fail fast on static tests +GO_BUILD_FLAGS="-a -v" etcd_build + unit_tests if [ -n "$INTEGRATION" ]; then integration_tests