From: Arnaud Rebillout Date: Sat, 28 Sep 2019 02:30:56 +0000 (+0000) Subject: Dont use gotestsum in hack/test/unit X-Git-Tag: archive/raspbian/19.03.4+dfsg2-2+rpi1^2~20 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=6c8ba66db3889e65107b375f59992082bd326964;p=docker.io.git Dont use gotestsum in hack/test/unit gotestsum is not yet in Debian, let's just stick to 'go test' for now. As soon as gotestsum is packaged for Debian (see #940225), we can drop this patch, and add gotestsum as a build dependency. This is a partial revert of the docker/cli commits: - 3bd3996f72ca281cec288dd6e7f4fdaa0e1eeb00 - 277f61415ec99d5fbae75c15013f2fdfb0017af4 Origin: vendor, Debian Forwarded: not-needed, Debian-specific Signed-off-by: Arnaud Rebillout Gbp-Pq: Name debian-dont-use-gotestsum-in-cli.patch --- diff --git a/cli/Makefile b/cli/Makefile index 6f9abf91..aaf5317f 100644 --- a/cli/Makefile +++ b/cli/Makefile @@ -11,15 +11,15 @@ clean: ## remove build artifacts rm -rf ./build/* cli/winresources/rsrc_* ./man/man[1-9] docs/yaml/gen .PHONY: test-unit -test-unit: ## run unit tests, to change the output format use: GOTESTSUM_FORMAT=(dots|short|standard-quiet|short-verbose|standard-verbose) make test-unit - gotestsum $(TESTFLAGS) -- $${TESTDIRS:-$(shell go list ./... | grep -vE '/vendor/|/e2e/')} +test-unit: ## run unit test + ./scripts/test/unit $(shell go list ./... | grep -vE '/vendor/|/e2e/') .PHONY: test test: test-unit ## run tests .PHONY: test-coverage test-coverage: ## run test coverage - gotestsum -- -coverprofile=coverage.txt $(shell go list ./... | grep -vE '/vendor/|/e2e/') + ./scripts/test/unit-with-coverage $(shell go list ./... | grep -vE '/vendor/|/e2e/') .PHONY: fmt fmt: diff --git a/cli/scripts/test/unit b/cli/scripts/test/unit new file mode 100644 index 00000000..7eb82d0f --- /dev/null +++ b/cli/scripts/test/unit @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -eu -o pipefail + +go test -v "$@" diff --git a/cli/scripts/test/unit-with-coverage b/cli/scripts/test/unit-with-coverage new file mode 100644 index 00000000..db2efe78 --- /dev/null +++ b/cli/scripts/test/unit-with-coverage @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +set -eu -o pipefail + +# install test dependencies once before running tests for each package. This +# reduces the runtime from 200s down to 23s +go test -i "$@" + +echo "mode: atomic" > coverage.txt +for pkg in "$@"; do + ./scripts/test/unit \ + -cover \ + -coverprofile=profile.out \ + -covermode=atomic \ + "${pkg}" + + if test -f profile.out; then + grep -v "^mode:" < profile.out >> coverage.txt || true + rm profile.out + fi +done