Skip to content

Commit

Permalink
cmd/go: report loading errors from 'go mod tidy' and 'go mod vendor'
Browse files Browse the repository at this point in the history
Fixes #27063

Change-Id: Iedd14fd614a3d79d1387b923a0f123c2bc9e0b33
Reviewed-on: https://go-review.googlesource.com/c/go/+/188763
Run-TryBot: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Jay Conrod <jayconrod@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
  • Loading branch information
Bryan C. Mills committed Aug 2, 2019
1 parent 316ac4f commit 07b3e62
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 8 deletions.
6 changes: 4 additions & 2 deletions src/cmd/go/internal/modload/load.go
Original file line number Diff line number Diff line change
Expand Up @@ -387,11 +387,13 @@ func loadAll(testAll bool) []string {

var paths []string
for _, pkg := range loaded.pkgs {
if e, ok := pkg.err.(*ImportMissingError); ok && e.Module.Path == "" {
continue // Package doesn't actually exist.
if pkg.err != nil {
base.Errorf("%s: %v", pkg.stackText(), pkg.err)
continue
}
paths = append(paths, pkg.path)
}
base.ExitIfErrors()
return paths
}

Expand Down
39 changes: 39 additions & 0 deletions src/cmd/go/testdata/script/mod_tidy_error.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
env GO111MODULE=on

# Regression test for golang.org/issue/27063:
# 'go mod tidy' and 'go mod vendor' should not hide loading errors.

! go mod tidy
stderr '^issue27063 imports\n\tnonexist: malformed module path "nonexist": missing dot in first path element'
stderr '^issue27063 imports\n\tnonexist.example.com: cannot find module providing package nonexist.example.com'
stderr '^issue27063 imports\n\tissue27063/other imports\n\tother.example.com/nonexist: cannot find module providing package other.example.com/nonexist'

! go mod vendor
stderr '^issue27063 imports\n\tnonexist: malformed module path "nonexist": missing dot in first path element'
stderr '^issue27063 imports\n\tnonexist.example.com: cannot find module providing package nonexist.example.com'
stderr '^issue27063 imports\n\tissue27063/other imports\n\tother.example.com/nonexist: cannot find module providing package other.example.com/nonexist'

-- go.mod --
module issue27063

go 1.13

require issue27063/other v0.0.0
replace issue27063/other => ./other
-- x.go --
package main

import (
"nonexist"

"nonexist.example.com"
"issue27063/other"
)

func main() {}
-- other/go.mod --
module issue27063/other
-- other/other.go --
package other

import "other.example.com/nonexist"
6 changes: 0 additions & 6 deletions src/cmd/go/testdata/script/mod_vendor.txt
Original file line number Diff line number Diff line change
Expand Up @@ -171,12 +171,6 @@ package m

import _ "appengine"
import _ "appengine/datastore"
-- nonexistent.go --
// +build alternatereality

package m

import _ "nonexistent.rsc.io"
-- mypkg/go.mod --
module me
-- mypkg/mydir/d.go --
Expand Down

0 comments on commit 07b3e62

Please sign in to comment.