Commit b2ea4e6d authored by Jay Conrod's avatar Jay Conrod

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: default avatarBryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent 7d891d5e
......@@ -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 {
......
......@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment