| env GO111MODULE=on |
| |
| # explicit get should report errors about bad names |
| ! go get appengine |
| stderr '^go get appengine: package appengine is not in GOROOT \(.*\)$' |
| ! go get x/y.z |
| stderr 'malformed module path "x/y.z": missing dot in first path element' |
| |
| |
| # 'go list -m' should report errors about module names, never GOROOT. |
| ! go list -m -versions appengine |
| stderr 'malformed module path "appengine": missing dot in first path element' |
| ! go list -m -versions x/y.z |
| stderr 'malformed module path "x/y.z": missing dot in first path element' |
| |
| |
| # build should report all unsatisfied imports, |
| # but should be more definitive about non-module import paths |
| ! go build ./useappengine |
| stderr '^useappengine[/\\]x.go:2:8: cannot find package$' |
| ! go build ./usenonexistent |
| stderr '^usenonexistent[/\\]x.go:2:8: no required module provides package nonexistent.rsc.io; try ''go mod tidy'' to add it$' |
| |
| |
| # 'get -d' should be similarly definitive |
| |
| go get -d ./useappengine # TODO(#41315): This should fail. |
| # stderr '^useappengine[/\\]x.go:2:8: cannot find package$' |
| |
| ! go get -d ./usenonexistent |
| stderr '^x/usenonexistent imports\n\tnonexistent.rsc.io: cannot find module providing package nonexistent.rsc.io$' |
| |
| |
| # go mod vendor and go mod tidy should ignore appengine imports. |
| rm usenonexistent/x.go |
| go mod tidy |
| go mod vendor |
| |
| -- go.mod -- |
| module x |
| |
| -- useappengine/x.go -- |
| package useappengine |
| import _ "appengine" // package does not exist |
| -- usenonexistent/x.go -- |
| package usenonexistent |
| import _ "nonexistent.rsc.io" // domain does not exist |