cmd/vet: use length of output from errchk to check PASS/FAIL

errchk is itself a FAIL: it doesn't exit non-zero on error!

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/9842044
This commit is contained in:
Rob Pike 2013-05-28 16:51:47 -04:00
parent c7f7fa1381
commit 2b48cfca08

View File

@ -51,14 +51,17 @@ func TestVet(t *testing.T) {
"-printfuncs=Warn:1,Warnf:1",
}
cmd = exec.Command(errchk, append(flags, files...)...)
run(cmd, t)
if !run(cmd, t) {
t.Fatal("vet command failed")
}
}
func run(c *exec.Cmd, t *testing.T) {
c.Stdout = os.Stdout
c.Stderr = os.Stderr
err := c.Run()
func run(c *exec.Cmd, t *testing.T) bool {
output, err := c.CombinedOutput()
os.Stderr.Write(output)
if err != nil {
t.Fatal(err)
}
// Errchk delights by not returning non-zero status if it finds errors, so we look at the output.
return c.ProcessState.Success() && len(output) == 0
}