1
0
mirror of https://github.com/golang/go synced 2024-09-30 06:24:33 -06:00

cmd/go: make 'go mod verify' report an error outside a module

Also, test that 'go mod download' without arguments reports an error.

Fixes #32027

Change-Id: I873fc59fba4c78ee2b4f49f0d846ee2ac0eee4db
Reviewed-on: https://go-review.googlesource.com/c/go/+/202697
Run-TryBot: Jay Conrod <jayconrod@google.com>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Jay Conrod 2019-10-22 16:49:04 -04:00
parent 7d891d5e4d
commit b2ea4e6d34
2 changed files with 10 additions and 5 deletions

View File

@ -43,7 +43,7 @@ func runVerify(cmd *base.Command, args []string) {
base.Fatalf("go mod verify: verify takes no arguments")
}
// Checks go mod expected behavior
if !modload.Enabled() {
if !modload.Enabled() || !modload.HasModRoot() {
if cfg.Getenv("GO111MODULE") == "off" {
base.Fatalf("go: modules disabled by GO111MODULE=off; see 'go help modules'")
} else {

View File

@ -82,6 +82,10 @@ stderr 'cannot find main module'
stderr 'cannot find main module'
# 'go mod download' without arguments should report an error.
! go mod download
stderr 'no modules specified'
# 'go mod download' should download exactly the requested module without dependencies.
rm -r $GOPATH/pkg/mod/cache/download/example.com
go mod download example.com/printversion@v1.0.0
@ -92,15 +96,16 @@ exists $GOPATH/pkg/mod/cache/download/example.com/printversion/@v/v1.0.0.zip
! go mod download all
stderr 'go: cannot match "all": working directory is not part of a module'
# 'go mod vendor' should fail: it starts by clearing the existing vendor
# directory, and we don't know where that is.
! go mod vendor
stderr 'cannot find main module'
# 'go mod verify' should succeed: we have no modules to verify.
go mod verify
stdout 'all modules verified'
! stderr .
# 'go mod verify' should fail: we have no modules to verify.
! go mod verify
stderr 'cannot find main module'
# 'go get' without arguments implicitly operates on the main module, and thus