]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: make 'go mod verify' report an error outside a module
authorJay Conrod <jayconrod@google.com>
Tue, 22 Oct 2019 20:49:04 +0000 (16:49 -0400)
committerJay Conrod <jayconrod@google.com>
Tue, 22 Oct 2019 21:34:48 +0000 (21:34 +0000)
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>

src/cmd/go/internal/modcmd/verify.go
src/cmd/go/testdata/script/mod_outside.txt

index 9155fcb358044802e6b263be105dcb0707395ef5..72f16a793be2eb372e8103bb16a4a0b18a4e31f7 100644 (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 {
index 815745e8bff03be6167a8e37c06c279e9a408462..6f569ca351ab4277e77c3a776b2601f8af9bba6f 100644 (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