From dcfc4ada4dcc8b1f878370976f29ca0485e690f8 Mon Sep 17 00:00:00 2001 From: Tianon Gravi Date: Sun, 8 Dec 2013 13:49:57 -0700 Subject: [PATCH] Clean output and simplify hack/make/*test by adding go_test_dir function in make.sh --- hack/make.sh | 18 ++++++++++++++++++ hack/make/dyntest | 23 +++++++---------------- hack/make/test | 14 ++------------ 3 files changed, 27 insertions(+), 28 deletions(-) diff --git a/hack/make.sh b/hack/make.sh index 6139c93bb5..23b77509b6 100755 --- a/hack/make.sh +++ b/hack/make.sh @@ -62,6 +62,24 @@ LDFLAGS='-X main.GITCOMMIT "'$GITCOMMIT'" -X main.VERSION "'$VERSION'" -w' LDFLAGS_STATIC='-X github.com/dotcloud/docker/utils.IAMSTATIC true -linkmode external -extldflags "-lpthread -static -Wl,--unresolved-symbols=ignore-in-object-files"' BUILDFLAGS='-tags netgo' +# 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 +# +go_test_dir() { + dir=$1 + ( # we run "go test -i" ouside the "set -x" to provde cleaner output + cd "$dir" + go test -i -ldflags "$LDFLAGS" $BUILDFLAGS + ) + ( + set -x + cd "$dir" + go test -ldflags "$LDFLAGS" $BUILDFLAGS $TESTFLAGS + ) +} + bundle() { bundlescript=$1 bundle=$(basename $bundlescript) diff --git a/hack/make/dyntest b/hack/make/dyntest index ae157dff55..e6e1dbb5b2 100644 --- a/hack/make/dyntest +++ b/hack/make/dyntest @@ -17,29 +17,20 @@ GREEN=$'\033[32m' # 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 +# +# TESTFLAGS='-run ^TestBuild$' ./hack/make.sh test # bundle_test() { { date - + + export TEST_DOCKERINIT_PATH=$DEST/../dynbinary/dockerinit-$VERSION + TESTS_FAILED=() for test_dir in $(find_test_dirs); do echo - - if ! ( - set -x - cd $test_dir - - # Install packages that are dependencies of the tests. - # Note: Does not run the tests. - go test -i -ldflags "$LDFLAGS" $BUILDFLAGS - - # Run the tests with the optional $TESTFLAGS. - export TEST_DOCKERINIT_PATH=$DEST/../dynbinary/dockerinit-$VERSION - go test -ldflags "$LDFLAGS -X github.com/dotcloud/docker/utils.INITSHA1 \"$DOCKER_INITSHA1\"" $BUILDFLAGS $TESTFLAGS - ); then + + if ! LDFLAGS="$LDFLAGS -X github.com/dotcloud/docker/utils.INITSHA1 \"$DOCKER_INITSHA1\"" go_test_dir "$test_dir"; then TESTS_FAILED+=("$test_dir") echo echo "${RED}Tests failed: $test_dir${TEXTRESET}" diff --git a/hack/make/test b/hack/make/test index ad93e91cf8..9ec86f0780 100644 --- a/hack/make/test +++ b/hack/make/test @@ -12,7 +12,7 @@ GREEN=$'\033[32m' # 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 +# TESTFLAGS='-run ^TestBuild$' ./hack/make.sh test # bundle_test() { { @@ -22,17 +22,7 @@ bundle_test() { for test_dir in $(find_test_dirs); do echo - if ! ( - 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 -ldflags "$LDFLAGS $LDFLAGS_STATIC" $BUILDFLAGS $TESTFLAGS - ); then + if ! LDFLAGS="$LDFLAGS $LDFLAGS_STATIC" go_test_dir "$test_dir"; then TESTS_FAILED+=("$test_dir") echo echo "${RED}Tests failed: $test_dir${TEXTRESET}"