From 7d9a88a68729192ec319e0204da7d56b1f805329 Mon Sep 17 00:00:00 2001 From: Anthony Romano Date: Mon, 18 Jan 2016 00:07:09 -0800 Subject: [PATCH 1/2] test: refactor sorts of tests into separate functions --- test | 84 +++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 46 insertions(+), 38 deletions(-) diff --git a/test b/test index f2f396c6b..75c0462df 100755 --- a/test +++ b/test @@ -45,54 +45,62 @@ TEST=${split[@]/#/${REPO_PATH}/} split=(${NO_RACE_TEST// / }) NO_RACE_TEST=${split[@]/#/${REPO_PATH}/} -echo "Running tests..." +function unit_tests { + echo "Running tests..." -MACHINE_TYPE=$(uname -m) -if [ $MACHINE_TYPE != "armv7l" ]; then - RACE="--race" -fi + MACHINE_TYPE=$(uname -m) + if [ $MACHINE_TYPE != "armv7l" ]; then + RACE="--race" + fi + go test -timeout 3m ${COVER} ${RACE} -cpu 1,2,4 $@ ${TEST} + go test -timeout 3m ${COVER} -cpu 1,2,4 $@ ${NO_RACE_TEST} +} -go test -timeout 3m ${COVER} ${RACE} -cpu 1,2,4 $@ ${TEST} -go test -timeout 3m ${COVER} -cpu 1,2,4 $@ ${NO_RACE_TEST} - -if [ -n "$INTEGRATION" ]; then +function integration_tests { echo "Running integration tests..." go test -timeout 5m -v -cpu 1,2,4 $@ ${REPO_PATH}/e2e go test -timeout 10m -v -cpu 1,2,4 $@ ${REPO_PATH}/integration go test -timeout 1m -v -cpu 1,2,4 $@ ${REPO_PATH}/contrib/raftexample -fi +} -echo "Checking gofmt..." -fmtRes=$(gofmt -l -s -d $FMT) -if [ -n "${fmtRes}" ]; then - echo -e "gofmt checking failed:\n${fmtRes}" - exit 255 -fi - -echo "Checking govet..." -vetRes=$(go vet $TEST) -if [ -n "${vetRes}" ]; then - echo -e "govet checking failed:\n${vetRes}" - exit 255 -fi - -echo "Checking govet -shadow..." -for path in $FMT; do - vetRes=$(go tool vet -shadow ${path}) - if [ -n "${vetRes}" ]; then - echo -e "govet checking ${path} failed:\n${vetRes}" +function fmt_tests { + echo "Checking gofmt..." + fmtRes=$(gofmt -l -s -d $FMT) + if [ -n "${fmtRes}" ]; then + echo -e "gofmt checking failed:\n${fmtRes}" exit 255 fi -done + + echo "Checking govet..." + vetRes=$(go vet $TEST) + if [ -n "${vetRes}" ]; then + echo -e "govet checking failed:\n${vetRes}" + exit 255 + fi + + echo "Checking govet -shadow..." + for path in $FMT; do + vetRes=$(go tool vet -shadow ${path}) + if [ -n "${vetRes}" ]; then + echo -e "govet checking ${path} failed:\n${vetRes}" + exit 255 + fi + done -echo "Checking for license header..." -licRes=$(for file in $(find . -type f -iname '*.go' ! -path './Godeps/*'); do - head -n3 "${file}" | grep -Eq "(Copyright|generated|GENERATED)" || echo -e " ${file}" - done;) -if [ -n "${licRes}" ]; then - echo -e "license header checking failed:\n${licRes}" - exit 255 + echo "Checking for license header..." + licRes=$(for file in $(find . -type f -iname '*.go' ! -path './Godeps/*'); do + head -n3 "${file}" | grep -Eq "(Copyright|generated|GENERATED)" || echo -e " ${file}" + done;) + if [ -n "${licRes}" ]; then + echo -e "license header checking failed:\n${licRes}" + exit 255 + fi +} + +unit_tests +if [ -n "$INTEGRATION" ]; then + integration_tests fi - +fmt_tests echo "Success" From 63197782eab4cba31b8fefa0ca146f7fd4f58ad5 Mon Sep 17 00:00:00 2001 From: Anthony Romano Date: Mon, 18 Jan 2016 00:07:58 -0800 Subject: [PATCH 2/2] test: trigger formatting tests before unit tests Don't waste time running full unit tests only to fail CI over fmt or vet. --- test | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test b/test index 75c0462df..2c1d5c502 100755 --- a/test +++ b/test @@ -87,7 +87,6 @@ function fmt_tests { fi done - echo "Checking for license header..." licRes=$(for file in $(find . -type f -iname '*.go' ! -path './Godeps/*'); do head -n3 "${file}" | grep -Eq "(Copyright|generated|GENERATED)" || echo -e " ${file}" @@ -98,9 +97,11 @@ function fmt_tests { fi } +# fail fast on formatting tests +fmt_tests + unit_tests if [ -n "$INTEGRATION" ]; then integration_tests fi -fmt_tests echo "Success"