From 4f611e832c838b394b3d3a8b2fb6caee4d9a5b03 Mon Sep 17 00:00:00 2001 From: Tom Wilkie Date: Thu, 30 Jul 2015 13:12:48 +0000 Subject: [PATCH] Add test script from weave --- test | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 test diff --git a/test b/test new file mode 100755 index 000000000..c5810607e --- /dev/null +++ b/test @@ -0,0 +1,54 @@ +#!/bin/bash + +set -e + +DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +SLOW=${SLOW-} +GO_TEST_ARGS="-tags netgo -cpu 4 -timeout 8m" +if [ -n "$SLOW" -o "$1" = "-slow" ]; then + GO_TEST_ARGS="$GO_TEST_ARGS -race -covermode=atomic" + + if [ -n "$COVERDIR" ] ; then + coverdir="$COVERDIR" + else + coverdir=$(mktemp -d coverage.XXXXXXXXXX) + fi + + mkdir -p $coverdir +fi + +fail=0 + +TESTDIRS=$(find . -type f -name '*_test.go' | xargs -n1 dirname | grep -v prog | sort -u) + +for dir in $TESTDIRS; do + go get -t -tags netgo $dir + + GO_TEST_ARGS_RUN="$GO_TEST_ARGS" + if [ -n "$SLOW" ]; then + COVERPKGS=$((go list $dir; go list -f '{{join .Deps "\n"}}' $dir | grep "weaveworks") | paste -s -d,) + output=$(mktemp $coverdir/unit.XXXXXXXXXX) + GO_TEST_ARGS_RUN="$GO_TEST_ARGS -coverprofile=$output -coverpkg=$COVERPKGS" + fi + + START=$(date +%s) + if ! go test $GO_TEST_ARGS_RUN $dir ; then + fail=1 + fi + RUNTIME=$(( $(date +%s) - $START )) + + # Report test runtime when running on circle, to help scheduler + if [ -n "$CIRCLECI" -a -z "$NO_SCHEDULER" ]; then + "$DIR/sched" time $dir $RUNTIME + fi +done + +if [ -n "$SLOW" -a -z "$COVERDIR" ] ; then + go get github.com/weaveworks/tools/cover + cover $coverdir/* >profile.cov + rm -rf $coverdir + go tool cover -html=profile.cov -o=coverage.html + go tool cover -func=profile.cov | tail -n1 +fi + +exit $fail