#!/bin/sh DEST=$1 set -e # Run Docker's test suite, including sub-packages, and store their output as a bundle # If $TESTFLAGS is set in the environment, it is passed as extra arguments to 'go test'. # You can use this to select certain tests to run, eg. # # TESTFLAGS='-run ^TestBuild$' ./hack/make.sh test # bundle_test() { { date for test_dir in $(find_test_dirs); do ( set -x cd $test_dir # Install packages that are dependencies of the tests. # Note: Does not run the tests. go test -i -ldflags "$LDFLAGS $LDFLAGS_STATIC" $BUILDFLAGS # Run the tests with the optional $TESTFLAGS. go test -v -ldflags "$LDFLAGS $LDFLAGS_STATIC" $BUILDFLAGS $TESTFLAGS ) done } 2>&1 | tee $DEST/test.log } # This helper function walks the current directory looking for directories # holding Go test files, and prints their paths on standard output, one per # line. find_test_dirs() { find . -name '*_test.go' | grep -v '^./vendor' | { while read f; do dirname $f; done; } | sort -u } bundle_test