mirror of
https://github.com/golang/go
synced 2024-11-12 03:00:22 -07:00
cmd/go: respect gcflags, ldflags in 'go test'
Fixes bug introduced by https://golang.org/cl/129059 where gcflags='all=...' and ldflags='all=...' would not be applied to some packages built by 'go test'. LoadImport used to set gcflags/ldflags for the Package objects it created, in https://golang.org/cl/129059 this code was factored out to setToolFlags. The codepath of `go build` was updated to call setToolFlags appropriatley, but the codepath of `go test -c` wasn't, resulting in gcflags/ldflags being applied inconsistently when building tests. This commit changes TestPackagesFor to call setToolFlags on the package objects it creates. Fixes #27681 Change-Id: Idcbec0c989ee96ec066207184611f08818873e8d Reviewed-on: https://go-review.googlesource.com/c/136275 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
This commit is contained in:
parent
abd1dde1f7
commit
374546d800
@ -227,6 +227,12 @@ func TestPackagesFor(p *Package, cover *TestCover) (pmain, ptest, pxtest *Packag
|
||||
}
|
||||
}
|
||||
|
||||
allTestImports := make([]*Package, 0, len(pmain.Internal.Imports)+len(imports)+len(ximports))
|
||||
allTestImports = append(allTestImports, pmain.Internal.Imports...)
|
||||
allTestImports = append(allTestImports, imports...)
|
||||
allTestImports = append(allTestImports, ximports...)
|
||||
setToolFlags(allTestImports...)
|
||||
|
||||
// Do initial scan for metadata needed for writing _testmain.go
|
||||
// Use that metadata to update the list of imports for package main.
|
||||
// The list of imports is used by recompileForTest and by the loop
|
||||
|
@ -21,6 +21,10 @@ stderr 'compile.* -p y'
|
||||
go build -n -v -gcflags=' z1 = -e ' z1
|
||||
stderr 'compile.* -e .*-p z1'
|
||||
|
||||
# -gcflags='all=-N -l' should apply to all packages, even with go test
|
||||
go test -c -n -gcflags='all=-N -l' z1
|
||||
stderr 'compile.* -N -l .*-p z3 '
|
||||
|
||||
# -ldflags for implicit test package applies to test binary
|
||||
go test -c -n -gcflags=-N -ldflags=-X=x.y=z z1
|
||||
stderr 'compile.* -N .*z_test.go'
|
||||
@ -58,11 +62,15 @@ import _ "z2"
|
||||
-- z1/z_test.go --
|
||||
package z1_test
|
||||
import "testing"
|
||||
import _ "z3"
|
||||
func Test(t *testing.T) {}
|
||||
|
||||
-- z2/z.go --
|
||||
package z2
|
||||
|
||||
-- z3/z.go --
|
||||
package z3
|
||||
|
||||
-- y/y.go --
|
||||
package y
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user