mirror of
https://github.com/golang/go
synced 2024-11-26 21:21:34 -07:00
cmd/go: diagnose trivial test import cycle
Was detecting only non-trivial ones. Fixes #9690. Change-Id: I662d81dd4818ddf29592057c090805772c84287b Reviewed-on: https://go-review.googlesource.com/12147 Reviewed-by: Rob Pike <r@golang.org>
This commit is contained in:
parent
ea918ef535
commit
023047d14b
@ -1848,6 +1848,9 @@ func TestGoTestDetectsTestOnlyImportCycles(t *testing.T) {
|
||||
tg.setenv("GOPATH", filepath.Join(tg.pwd(), "testdata"))
|
||||
tg.runFail("test", "-c", "testcycle/p3")
|
||||
tg.grepStderr("import cycle not allowed in test", "go test testcycle/p3 produced unexpected error")
|
||||
|
||||
tg.runFail("test", "-c", "testcycle/q1")
|
||||
tg.grepStderr("import cycle not allowed in test", "go test testcycle/q1 produced unexpected error")
|
||||
}
|
||||
|
||||
func TestGoTestFooTestWorks(t *testing.T) {
|
||||
|
@ -578,7 +578,7 @@ func (b *builder) test(p *Package) (buildAction, runAction, printAction *action,
|
||||
if p1.Error != nil {
|
||||
return nil, nil, nil, p1.Error
|
||||
}
|
||||
if contains(p1.Deps, p.ImportPath) {
|
||||
if contains(p1.Deps, p.ImportPath) || p1.ImportPath == p.ImportPath {
|
||||
// Same error that loadPackage returns (via reusePackage) in pkg.go.
|
||||
// Can't change that code, because that code is only for loading the
|
||||
// non-test copy of a package.
|
||||
|
1
src/cmd/go/testdata/src/testcycle/q1/q1.go
vendored
Normal file
1
src/cmd/go/testdata/src/testcycle/q1/q1.go
vendored
Normal file
@ -0,0 +1 @@
|
||||
package q1
|
6
src/cmd/go/testdata/src/testcycle/q1/q1_test.go
vendored
Normal file
6
src/cmd/go/testdata/src/testcycle/q1/q1_test.go
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
package q1
|
||||
|
||||
import "testing"
|
||||
import _ "testcycle/q1"
|
||||
|
||||
func Test(t *testing.T) {}
|
Loading…
Reference in New Issue
Block a user