mirror of
https://github.com/golang/go
synced 2024-11-12 00:30:22 -07:00
go/build: reject directory with only cgo files if cgo not in use
The old test for "no Go files" was p.Name == "", meaning we never saw a Go package statement. That test fails if there are cgo files that we parsed (and recorded the package name) but then chose not to use (because cgo is not available). Test the actual file lists instead. Fixes #6078. R=golang-dev, iant CC=golang-dev https://golang.org/cl/13661043
This commit is contained in:
parent
fdaf88ea5b
commit
611b182190
@ -167,6 +167,19 @@ elif ! grep testdata/shadow/root1/src/foo testdata/err >/dev/null; then
|
||||
fi
|
||||
unset GOPATH
|
||||
|
||||
TEST go install fails with no buildable files
|
||||
export GOPATH=$(pwd)/testdata
|
||||
export CGO_ENABLED=0
|
||||
if ./testgo install cgotest 2>testdata/err; then
|
||||
echo "go install cgotest succeeded unexpectedly"
|
||||
elif ! grep 'no buildable Go source files' testdata/err >/dev/null; then
|
||||
echo "go install cgotest did not report 'no buildable Go source files'"
|
||||
cat testdata/err
|
||||
ok=false
|
||||
fi
|
||||
unset CGO_ENABLED
|
||||
unset GOPATH
|
||||
|
||||
# Test that without $GOBIN set, binaries get installed
|
||||
# into the GOPATH bin directory.
|
||||
TEST install into GOPATH
|
||||
|
5
src/cmd/go/testdata/src/cgotest/m.go
vendored
Normal file
5
src/cmd/go/testdata/src/cgotest/m.go
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
package cgotest
|
||||
|
||||
import "C"
|
||||
|
||||
var _ C.int
|
@ -747,6 +747,8 @@ Found:
|
||||
allTags["cgo"] = true
|
||||
if ctxt.CgoEnabled {
|
||||
p.CgoFiles = append(p.CgoFiles, name)
|
||||
} else {
|
||||
p.IgnoredGoFiles = append(p.IgnoredGoFiles, name)
|
||||
}
|
||||
} else if isXTest {
|
||||
p.XTestGoFiles = append(p.XTestGoFiles, name)
|
||||
@ -756,7 +758,7 @@ Found:
|
||||
p.GoFiles = append(p.GoFiles, name)
|
||||
}
|
||||
}
|
||||
if p.Name == "" {
|
||||
if len(p.GoFiles)+len(p.CgoFiles)+len(p.TestGoFiles)+len(p.XTestGoFiles) == 0 {
|
||||
return p, &NoGoError{p.Dir}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user