#!/usr/bin/env bash
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, e.g.
#
#   TESTFLAGS='-test.run ^TestBuild$' ./hack/make.sh test-unit
#
bundle_test_unit() {
	TESTFLAGS+=" -test.timeout=${TIMEOUT}"
	INCBUILD="-i"
	count=0
	for flag in "${BUILDFLAGS[@]}"; do
		if [ "${flag}" == ${INCBUILD} ]; then
			unset BUILDFLAGS[${count}]
			break
		fi
		count=$[ ${count} + 1 ]
	done

	date
	if [ -z "$TESTDIRS" ]; then
		TEST_PATH=./...
	else
		TEST_PATH=./${TESTDIRS}
	fi

	if [ "$(go env GOHOSTOS)" = 'solaris' ]; then
		pkg_list=$(go list -e \
			-f '{{if ne .Name "github.com/docker/docker"}}
				{{.ImportPath}}
			    {{end}}' \
			"${BUILDFLAGS[@]}" $TEST_PATH \
			| grep github.com/docker/docker \
			| grep -v github.com/docker/docker/vendor \
			| grep -v github.com/docker/docker/daemon/graphdriver \
			| grep -v github.com/docker/docker/man \
			| grep -v github.com/docker/docker/integration-cli)
	else
		pkg_list=$(go list -e \
			-f '{{if ne .Name "github.com/docker/docker"}}
				{{.ImportPath}}
			    {{end}}' \
			"${BUILDFLAGS[@]}" $TEST_PATH \
			| grep github.com/docker/docker \
			| grep -v github.com/docker/docker/vendor \
			| grep -v github.com/docker/docker/man \
			| grep -v github.com/docker/docker/integration-cli)
	fi

	go test -cover -ldflags "$LDFLAGS" "${BUILDFLAGS[@]}" $TESTFLAGS $pkg_list
}

bundle_test_unit 2>&1 | tee -a "$DEST/test.log"
