mirror of
https://github.com/golang/go
synced 2024-11-23 19:20:03 -07:00
cmd/go: make 'go list -test' report the correct import path
When a test variant of a package is created, the two versions cannot share memory for the fields that contain information about their imports, as these will be different between the two packagse. Both the Internal.Imports and the Imports fields must be able to be updated in the test variant without affecting the values of the original. Fixes golang/go#26880 Change-Id: Id61fad7d976e179c6c7711a394ce43ec8302fd7a Reviewed-on: https://go-review.googlesource.com/128836 Reviewed-by: Russ Cox <rsc@golang.org>
This commit is contained in:
parent
9f4ea6c25d
commit
d611e95cab
@ -342,6 +342,8 @@ func recompileForTest(pmain, preal, ptest, pxtest *Package) {
|
||||
p1.ForTest = preal.ImportPath
|
||||
p1.Internal.Imports = make([]*Package, len(p.Internal.Imports))
|
||||
copy(p1.Internal.Imports, p.Internal.Imports)
|
||||
p1.Imports = make([]string, len(p.Imports))
|
||||
copy(p1.Imports, p.Imports)
|
||||
p = p1
|
||||
p.Target = ""
|
||||
}
|
||||
|
19
src/cmd/go/testdata/script/list_test_imports.txt
vendored
Normal file
19
src/cmd/go/testdata/script/list_test_imports.txt
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
# issue 26880: list with tests has wrong variant in imports
|
||||
go list -test -f '{{.ImportPath}}:{{with .Imports}} {{join . ", "}}{{end}}' a b
|
||||
cmp stdout imports.txt
|
||||
|
||||
-- a/a.go --
|
||||
package a; import _ "b"
|
||||
-- b/b.go --
|
||||
package b
|
||||
-- b/b_test.go --
|
||||
package b
|
||||
-- b/b_x_test.go --
|
||||
package b_test; import _ "a"
|
||||
|
||||
-- imports.txt --
|
||||
a: b
|
||||
b:
|
||||
b.test: b [b.test], b_test [b.test], os, testing, testing/internal/testdeps
|
||||
b [b.test]:
|
||||
b_test [b.test]: a [b.test]
|
Loading…
Reference in New Issue
Block a user