cmd/go/internal/modfetch: fix legacy config file path parsed failed The func ConvertLegacyConfig should be expected to pass in a / path. Fixes golang/go#25110 Change-Id: Id092833bf14be667911341f2f2ca5cf97210febc Reviewed-on: https://go-review.googlesource.com/110117 Reviewed-by: Bryan C. Mills <bcmills@google.com> Reviewed-by: Russ Cox <rsc@golang.org> Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
diff --git a/vendor/cmd/go/internal/modfetch/convert.go b/vendor/cmd/go/internal/modfetch/convert.go index 1d7493d..5c482be 100644 --- a/vendor/cmd/go/internal/modfetch/convert.go +++ b/vendor/cmd/go/internal/modfetch/convert.go
@@ -15,6 +15,8 @@ "cmd/go/internal/semver" ) +// ConvertLegacyConfig converts legacy config to modfile. +// The file argument is slash-delimited. func ConvertLegacyConfig(f *modfile.File, file string, data []byte) error { i := strings.LastIndex(file, "/") j := -2
diff --git a/vendor/cmd/go/internal/vgo/init.go b/vendor/cmd/go/internal/vgo/init.go index 0c595d1..7424297 100644 --- a/vendor/cmd/go/internal/vgo/init.go +++ b/vendor/cmd/go/internal/vgo/init.go
@@ -181,6 +181,7 @@ return } fmt.Fprintf(os.Stderr, "vgo: copying requirements from %s\n", cfg) + cfg = filepath.ToSlash(cfg) if err := modfetch.ConvertLegacyConfig(modFile, cfg, data); err != nil { base.Fatalf("vgo: %v", err) }
diff --git a/vendor/cmd/go/vgo_test.go b/vendor/cmd/go/vgo_test.go index 70d1086..f97dbf5 100644 --- a/vendor/cmd/go/vgo_test.go +++ b/vendor/cmd/go/vgo_test.go
@@ -177,3 +177,20 @@ tg.grepStderrNot("copying requirements from .*Gopkg.lock", "should not copy Gopkg.lock again") } + +func TestConvertLegacyConfig(t *testing.T) { + tg := testgo(t) + defer tg.cleanup() + tg.makeTempdir() + + tg.must(os.MkdirAll(tg.path("x"), 0777)) + tg.must(ioutil.WriteFile(tg.path("x/Gopkg.lock"), []byte(` + [[projects]] + name = "github.com/pkg/errors" + packages = ["."] + revision = "645ef00459ed84a119197bfb8d8205042c6df63d" + version = "v0.8.0"`), 0666)) + tg.must(ioutil.WriteFile(tg.path("x/main.go"), []byte("package x // import \"x\"\n import _ \"github.com/pkg/errors\""), 0666)) + tg.cd(tg.path("x")) + tg.run("-vgo", "build") +}