Commit 834d2244 authored by LE Manh Cuong's avatar LE Manh Cuong Committed by Ian Lance Taylor

cm/go/internal/test: make vet run when using go test -c

Fixes #26451

Change-Id: Icd8d6d55dc42adb5c8953787eec7eb29ba46b2aa
Reviewed-on: https://go-review.googlesource.com/125215Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
parent 59699aa1
...@@ -381,12 +381,13 @@ func (c *config) checkRuntime() (skip bool, err error) { ...@@ -381,12 +381,13 @@ func (c *config) checkRuntime() (skip bool, err error) {
return false, err return false, err
} }
cmd.Args = append(cmd.Args, "-dM", "-E", "../../../src/runtime/cgo/libcgo.h") cmd.Args = append(cmd.Args, "-dM", "-E", "../../../src/runtime/cgo/libcgo.h")
cmdStr := strings.Join(cmd.Args, " ")
out, err := cmd.CombinedOutput() out, err := cmd.CombinedOutput()
if err != nil { if err != nil {
return false, fmt.Errorf("%#q exited with %v\n%s", strings.Join(cmd.Args, " "), err, out) return false, fmt.Errorf("%#q exited with %v\n%s", cmdStr, err, out)
} }
if !bytes.Contains(out, []byte("#define CGO_TSAN")) { if !bytes.Contains(out, []byte("#define CGO_TSAN")) {
return true, fmt.Errorf("%#q did not define CGO_TSAN") return true, fmt.Errorf("%#q did not define CGO_TSAN", cmdStr)
} }
return false, nil return false, nil
} }
......
...@@ -892,8 +892,10 @@ func builderTest(b *work.Builder, p *load.Package) (buildAction, runAction, prin ...@@ -892,8 +892,10 @@ func builderTest(b *work.Builder, p *load.Package) (buildAction, runAction, prin
} }
runAction = installAction // make sure runAction != nil even if not running test runAction = installAction // make sure runAction != nil even if not running test
} }
var vetRunAction *work.Action
if testC { if testC {
printAction = &work.Action{Mode: "test print (nop)", Package: p, Deps: []*work.Action{runAction}} // nop printAction = &work.Action{Mode: "test print (nop)", Package: p, Deps: []*work.Action{runAction}} // nop
vetRunAction = printAction
} else { } else {
// run test // run test
c := new(runCache) c := new(runCache)
...@@ -906,12 +908,7 @@ func builderTest(b *work.Builder, p *load.Package) (buildAction, runAction, prin ...@@ -906,12 +908,7 @@ func builderTest(b *work.Builder, p *load.Package) (buildAction, runAction, prin
TryCache: c.tryCache, TryCache: c.tryCache,
Objdir: testDir, Objdir: testDir,
} }
if len(ptest.GoFiles)+len(ptest.CgoFiles) > 0 { vetRunAction = runAction
addTestVet(b, ptest, runAction, installAction)
}
if pxtest != nil {
addTestVet(b, pxtest, runAction, installAction)
}
cleanAction = &work.Action{ cleanAction = &work.Action{
Mode: "test clean", Mode: "test clean",
Func: builderCleanTest, Func: builderCleanTest,
...@@ -928,6 +925,14 @@ func builderTest(b *work.Builder, p *load.Package) (buildAction, runAction, prin ...@@ -928,6 +925,14 @@ func builderTest(b *work.Builder, p *load.Package) (buildAction, runAction, prin
IgnoreFail: true, // print even if test failed IgnoreFail: true, // print even if test failed
} }
} }
if len(ptest.GoFiles)+len(ptest.CgoFiles) > 0 {
addTestVet(b, ptest, vetRunAction, installAction)
}
if pxtest != nil {
addTestVet(b, pxtest, vetRunAction, installAction)
}
if installAction != nil { if installAction != nil {
if runAction != installAction { if runAction != installAction {
installAction.Deps = append(installAction.Deps, runAction) installAction.Deps = append(installAction.Deps, runAction)
......
! go test -c compile_binary/...
stderr 'build comment'
-- compile_binary/foo_test.go --
//+build foo
package foo
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment