aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2017-01-04 10:30:28 -0500
committerRuss Cox <rsc@golang.org>2017-01-04 20:01:46 +0000
commit3fa53f1229956a8874d58e6d80a4433b57fc82ac (patch)
tree7a815f804457c0e7797d90e1a9675286daa72765
parent20cdb62c499140bcd3c42f89be0d5b4ede683f42 (diff)
downloadgo-3fa53f1229956a8874d58e6d80a4433b57fc82ac.tar.gz
go-3fa53f1229956a8874d58e6d80a4433b57fc82ac.zip
cmd/go: add sync/atomic dependency when needed by test coverage
Fixes #18486. Change-Id: I359dc4169e04b4123bd41679ea939b06fa754ac2 Reviewed-on: https://go-review.googlesource.com/34830 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-rw-r--r--src/cmd/go/go_test.go22
-rw-r--r--src/cmd/go/pkg.go4
-rw-r--r--src/cmd/go/testdata/src/empty/pkg/pkg.go1
-rw-r--r--src/cmd/go/testdata/src/empty/pkgtest/pkg.go1
-rw-r--r--src/cmd/go/testdata/src/empty/pkgtest/test_test.go1
-rw-r--r--src/cmd/go/testdata/src/empty/pkgtestxtest/pkg.go1
-rw-r--r--src/cmd/go/testdata/src/empty/pkgtestxtest/test_test.go1
-rw-r--r--src/cmd/go/testdata/src/empty/pkgtestxtest/xtest_test.go1
-rw-r--r--src/cmd/go/testdata/src/empty/pkgxtest/pkg.go1
-rw-r--r--src/cmd/go/testdata/src/empty/pkgxtest/xtest_test.go1
-rw-r--r--src/cmd/go/testdata/src/empty/test/test_test.go1
-rw-r--r--src/cmd/go/testdata/src/empty/testxtest/test_test.go1
-rw-r--r--src/cmd/go/testdata/src/empty/testxtest/xtest_test.go1
-rw-r--r--src/cmd/go/testdata/src/empty/xtest/xtest_test.go1
14 files changed, 38 insertions, 0 deletions
diff --git a/src/cmd/go/go_test.go b/src/cmd/go/go_test.go
index 5665eb745a..f7ea6c8bbd 100644
--- a/src/cmd/go/go_test.go
+++ b/src/cmd/go/go_test.go
@@ -2247,6 +2247,28 @@ func TestCoverageImportMainLoop(t *testing.T) {
tg.grepStderr("not an importable package", "did not detect import main")
}
+func TestTestEmpty(t *testing.T) {
+ if !canRace {
+ t.Skip("no race detector")
+ }
+
+ wd, _ := os.Getwd()
+ testdata := filepath.Join(wd, "testdata")
+
+ for _, dir := range []string{"pkg", "test", "xtest", "pkgtest", "pkgxtest", "pkgtestxtest", "testxtest"} {
+ t.Run(dir, func(t *testing.T) {
+ tg := testgo(t)
+ defer tg.cleanup()
+ tg.setenv("GOPATH", testdata)
+ tg.cd(filepath.Join(testdata, "src/empty/"+dir))
+ tg.run("test", "-cover", "-coverpkg=.", "-race")
+ })
+ if testing.Short() {
+ break
+ }
+ }
+}
+
func TestBuildDryRunWithCgo(t *testing.T) {
if !canCgo {
t.Skip("skipping because cgo not enabled")
diff --git a/src/cmd/go/pkg.go b/src/cmd/go/pkg.go
index 98e722b9f5..d69fa5118f 100644
--- a/src/cmd/go/pkg.go
+++ b/src/cmd/go/pkg.go
@@ -955,6 +955,10 @@ func (p *Package) load(stk *importStack, bp *build.Package, err error) *Package
if p.Name == "main" && goarch == "arm" {
importPaths = append(importPaths, "math")
}
+ // In coverage atomic mode everything depends on sync/atomic.
+ if testCoverMode == "atomic" && (!p.Standard || (p.ImportPath != "runtime/cgo" && p.ImportPath != "runtime/race" && p.ImportPath != "sync/atomic")) {
+ importPaths = append(importPaths, "sync/atomic")
+ }
}
// Runtime and its internal packages depend on runtime/internal/sys,
diff --git a/src/cmd/go/testdata/src/empty/pkg/pkg.go b/src/cmd/go/testdata/src/empty/pkg/pkg.go
new file mode 100644
index 0000000000..c89cd18d0f
--- /dev/null
+++ b/src/cmd/go/testdata/src/empty/pkg/pkg.go
@@ -0,0 +1 @@
+package p
diff --git a/src/cmd/go/testdata/src/empty/pkgtest/pkg.go b/src/cmd/go/testdata/src/empty/pkgtest/pkg.go
new file mode 100644
index 0000000000..c89cd18d0f
--- /dev/null
+++ b/src/cmd/go/testdata/src/empty/pkgtest/pkg.go
@@ -0,0 +1 @@
+package p
diff --git a/src/cmd/go/testdata/src/empty/pkgtest/test_test.go b/src/cmd/go/testdata/src/empty/pkgtest/test_test.go
new file mode 100644
index 0000000000..c89cd18d0f
--- /dev/null
+++ b/src/cmd/go/testdata/src/empty/pkgtest/test_test.go
@@ -0,0 +1 @@
+package p
diff --git a/src/cmd/go/testdata/src/empty/pkgtestxtest/pkg.go b/src/cmd/go/testdata/src/empty/pkgtestxtest/pkg.go
new file mode 100644
index 0000000000..c89cd18d0f
--- /dev/null
+++ b/src/cmd/go/testdata/src/empty/pkgtestxtest/pkg.go
@@ -0,0 +1 @@
+package p
diff --git a/src/cmd/go/testdata/src/empty/pkgtestxtest/test_test.go b/src/cmd/go/testdata/src/empty/pkgtestxtest/test_test.go
new file mode 100644
index 0000000000..c89cd18d0f
--- /dev/null
+++ b/src/cmd/go/testdata/src/empty/pkgtestxtest/test_test.go
@@ -0,0 +1 @@
+package p
diff --git a/src/cmd/go/testdata/src/empty/pkgtestxtest/xtest_test.go b/src/cmd/go/testdata/src/empty/pkgtestxtest/xtest_test.go
new file mode 100644
index 0000000000..9b64e8e1a2
--- /dev/null
+++ b/src/cmd/go/testdata/src/empty/pkgtestxtest/xtest_test.go
@@ -0,0 +1 @@
+package p_test
diff --git a/src/cmd/go/testdata/src/empty/pkgxtest/pkg.go b/src/cmd/go/testdata/src/empty/pkgxtest/pkg.go
new file mode 100644
index 0000000000..c89cd18d0f
--- /dev/null
+++ b/src/cmd/go/testdata/src/empty/pkgxtest/pkg.go
@@ -0,0 +1 @@
+package p
diff --git a/src/cmd/go/testdata/src/empty/pkgxtest/xtest_test.go b/src/cmd/go/testdata/src/empty/pkgxtest/xtest_test.go
new file mode 100644
index 0000000000..9b64e8e1a2
--- /dev/null
+++ b/src/cmd/go/testdata/src/empty/pkgxtest/xtest_test.go
@@ -0,0 +1 @@
+package p_test
diff --git a/src/cmd/go/testdata/src/empty/test/test_test.go b/src/cmd/go/testdata/src/empty/test/test_test.go
new file mode 100644
index 0000000000..c89cd18d0f
--- /dev/null
+++ b/src/cmd/go/testdata/src/empty/test/test_test.go
@@ -0,0 +1 @@
+package p
diff --git a/src/cmd/go/testdata/src/empty/testxtest/test_test.go b/src/cmd/go/testdata/src/empty/testxtest/test_test.go
new file mode 100644
index 0000000000..c89cd18d0f
--- /dev/null
+++ b/src/cmd/go/testdata/src/empty/testxtest/test_test.go
@@ -0,0 +1 @@
+package p
diff --git a/src/cmd/go/testdata/src/empty/testxtest/xtest_test.go b/src/cmd/go/testdata/src/empty/testxtest/xtest_test.go
new file mode 100644
index 0000000000..9b64e8e1a2
--- /dev/null
+++ b/src/cmd/go/testdata/src/empty/testxtest/xtest_test.go
@@ -0,0 +1 @@
+package p_test
diff --git a/src/cmd/go/testdata/src/empty/xtest/xtest_test.go b/src/cmd/go/testdata/src/empty/xtest/xtest_test.go
new file mode 100644
index 0000000000..9b64e8e1a2
--- /dev/null
+++ b/src/cmd/go/testdata/src/empty/xtest/xtest_test.go
@@ -0,0 +1 @@
+package p_test