aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlan Donovan <adonovan@google.com>2018-11-16 10:43:21 -0500
committerAlan Donovan <adonovan@google.com>2018-11-16 17:51:20 +0000
commit55e1fc930b3a4efe4ac8ad74ff7844be4c7ef162 (patch)
tree33e0a3197024880336fc66a3a5ede5f4dc22cd30 /src
parentb7ba5233550cadd2b06c4b98c702b45e7904f7ae (diff)
downloadgo-55e1fc930b3a4efe4ac8ad74ff7844be4c7ef162.tar.xz
cmd/vet: reenable cgo test
The reason the 386 trybot was happy but 'GOARCH=386 go test cmd/vet' was not is that CgoEnabled defaults to false in a cross build; I have no idea why. Now we ask the go command for the effective value so that the test works in both cases. Also, remove stale comment. Fixes #28829 Change-Id: I1210af34da6986f47924059de5c1f08b2824ace9 Reviewed-on: https://go-review.googlesource.com/c/149958 Run-TryBot: Alan Donovan <adonovan@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src')
-rw-r--r--src/cmd/vet/vet_test.go21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/cmd/vet/vet_test.go b/src/cmd/vet/vet_test.go
index 597681aa30..d106c5c29c 100644
--- a/src/cmd/vet/vet_test.go
+++ b/src/cmd/vet/vet_test.go
@@ -70,11 +70,6 @@ func vetCmd(t *testing.T, args ...string) *exec.Cmd {
return cmd
}
-// TestVet is equivalent to running this:
-// go build -o ./testvet
-// errorCheck the output of ./testvet -printfuncs='Warn:1,Warnf:1' testdata/*.go testdata/*.s
-// rm ./testvet
-//
func TestVet(t *testing.T) {
t.Parallel()
Build(t)
@@ -106,9 +101,8 @@ func TestVet(t *testing.T) {
t.Run(pkg, func(t *testing.T) {
t.Parallel()
- // Skip for now, pending investigation.
- if pkg == "cgo" {
- t.Skip("cgo test disabled -- github.com/golang/go/issues/28829")
+ // Skip cgo test on platforms without cgo.
+ if pkg == "cgo" && !cgoEnabled(t) {
return
}
@@ -137,6 +131,17 @@ func TestVet(t *testing.T) {
}
}
+func cgoEnabled(t *testing.T) bool {
+ // Don't trust build.Default.CgoEnabled as it is false for
+ // cross-builds unless CGO_ENABLED is explicitly specified.
+ // That's fine for the builders, but causes commands like
+ // 'GOARCH=386 go test .' to fail.
+ // Instead, we ask the go command.
+ cmd := exec.Command(testenv.GoToolPath(t), "list", "-f", "{{context.CgoEnabled}}")
+ out, _ := cmd.CombinedOutput()
+ return string(out) == "true\n"
+}
+
func errchk(c *exec.Cmd, files []string, t *testing.T) {
output, err := c.CombinedOutput()
if _, ok := err.(*exec.ExitError); !ok {