From c8f90979acf078d2cbb18a9bf5c6f8349fab296a Mon Sep 17 00:00:00 2001 From: Alex Brainman Date: Thu, 10 Apr 2014 14:02:24 +1000 Subject: [PATCH] cmd/go: always build package during "go test" command even when there are no *_test.go files present. rsc suggested this change Fixes #7108 LGTM=r, adg R=golang-codereviews, r, adg CC=golang-codereviews https://golang.org/cl/84300043 --- src/cmd/go/test.bash | 8 ++++++++ src/cmd/go/test.go | 2 +- src/cmd/go/testdata/src/notest/hello.go | 6 ++++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 src/cmd/go/testdata/src/notest/hello.go diff --git a/src/cmd/go/test.bash b/src/cmd/go/test.bash index 45215de4ded..4bde1661104 100755 --- a/src/cmd/go/test.bash +++ b/src/cmd/go/test.bash @@ -700,6 +700,14 @@ if ! ./testgo list -f "GOARCH: {{context.GOARCH}}"; then ok=false fi +TEST 'Issue 7108: cmd/go: "go test" should fail if package does not build' +export GOPATH=$(pwd)/testdata +if ./testgo test notest >/dev/null 2>&1; then + echo 'go test notest succeeded, but should fail' + ok=false +fi +unset GOPATH + # clean up if $started; then stop; fi rm -rf testdata/bin testdata/bin1 diff --git a/src/cmd/go/test.go b/src/cmd/go/test.go index 20a9e74af14..a5497e71a3d 100644 --- a/src/cmd/go/test.go +++ b/src/cmd/go/test.go @@ -524,7 +524,7 @@ func contains(x []string, s string) bool { func (b *builder) test(p *Package) (buildAction, runAction, printAction *action, err error) { if len(p.TestGoFiles)+len(p.XTestGoFiles) == 0 { - build := &action{p: p} + build := b.action(modeBuild, modeBuild, p) run := &action{p: p, deps: []*action{build}} print := &action{f: (*builder).notest, p: p, deps: []*action{run}} return build, run, print, nil diff --git a/src/cmd/go/testdata/src/notest/hello.go b/src/cmd/go/testdata/src/notest/hello.go new file mode 100644 index 00000000000..7c42c32fb0a --- /dev/null +++ b/src/cmd/go/testdata/src/notest/hello.go @@ -0,0 +1,6 @@ +package notest + +func hello() { + println("hello world") +} +Hello world