From b075dfba8066033e35cd62aaacf3c8a2593cfa57 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 13 Nov 2018 09:46:32 -0500 Subject: cmd/go/internal/modload: skip go.mod directories on all systems, not just Plan 9 I see no reason Plan 9 should be special cased. A directory named go.mod is not useful on any system. Followup to CL 129804. Change-Id: I9cc91b5934b17650bfdb07370aa73aeae445968c Reviewed-on: https://go-review.googlesource.com/c/149337 Run-TryBot: Russ Cox TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick Reviewed-by: Bryan C. Mills --- src/cmd/go/internal/modload/init.go | 5 ++- src/cmd/go/internal/modload/init_plan9_test.go | 42 -------------------------- src/cmd/go/internal/modload/init_test.go | 42 ++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 45 deletions(-) delete mode 100644 src/cmd/go/internal/modload/init_plan9_test.go create mode 100644 src/cmd/go/internal/modload/init_test.go (limited to 'src') diff --git a/src/cmd/go/internal/modload/init.go b/src/cmd/go/internal/modload/init.go index da778b4fad..7e8c223189 100644 --- a/src/cmd/go/internal/modload/init.go +++ b/src/cmd/go/internal/modload/init.go @@ -25,7 +25,6 @@ import ( "path" "path/filepath" "regexp" - "runtime" "strconv" "strings" ) @@ -402,7 +401,7 @@ func FindModuleRoot(dir, limit string, legacyConfigOK bool) (root, file string) // Look for enclosing go.mod. for { - if fi, err := os.Stat(filepath.Join(dir, "go.mod")); err == nil && !(runtime.GOOS == "plan9" && fi.IsDir()) { + if fi, err := os.Stat(filepath.Join(dir, "go.mod")); err == nil && !fi.IsDir() { return dir, "go.mod" } if dir == limit { @@ -420,7 +419,7 @@ func FindModuleRoot(dir, limit string, legacyConfigOK bool) (root, file string) dir = dir1 for { for _, name := range altConfigs { - if fi, err := os.Stat(filepath.Join(dir, name)); err == nil && !(runtime.GOOS == "plan9" && fi.IsDir()) { + if fi, err := os.Stat(filepath.Join(dir, name)); err == nil && !fi.IsDir() { return dir, name } } diff --git a/src/cmd/go/internal/modload/init_plan9_test.go b/src/cmd/go/internal/modload/init_plan9_test.go deleted file mode 100644 index 2df9d8af7d..0000000000 --- a/src/cmd/go/internal/modload/init_plan9_test.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package modload - -import ( - "io/ioutil" - "os" - "path/filepath" - "testing" -) - -func TestFindModuleRootIgnoreDir(t *testing.T) { - // In Plan 9, directories are automatically created in /n. - // For example, /n/go.mod always exist, but it's a directory. - // Test that we ignore directories when trying to find go.mod and other config files. - - dir, err := ioutil.TempDir("", "gotest") - if err != nil { - t.Fatalf("failed to create temporary directory: %v", err) - } - defer os.RemoveAll(dir) - if err := os.Mkdir(filepath.Join(dir, "go.mod"), os.ModeDir|0755); err != nil { - t.Fatalf("Mkdir failed: %v", err) - } - for _, name := range altConfigs { - if err := os.MkdirAll(filepath.Join(dir, name), os.ModeDir|0755); err != nil { - t.Fatalf("MkdirAll failed: %v", err) - } - } - p := filepath.Join(dir, "example") - if err := os.Mkdir(p, os.ModeDir|0755); err != nil { - t.Fatalf("Mkdir failed: %v", err) - } - if root, _ := FindModuleRoot(p, "", false); root != "" { - t.Errorf("FindModuleRoot(%q, \"\", false): %q, want empty string", p, root) - } - if root, _ := FindModuleRoot(p, "", true); root != "" { - t.Errorf("FindModuleRoot(%q, \"\", true): %q, want empty string", p, root) - } -} diff --git a/src/cmd/go/internal/modload/init_test.go b/src/cmd/go/internal/modload/init_test.go new file mode 100644 index 0000000000..2df9d8af7d --- /dev/null +++ b/src/cmd/go/internal/modload/init_test.go @@ -0,0 +1,42 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package modload + +import ( + "io/ioutil" + "os" + "path/filepath" + "testing" +) + +func TestFindModuleRootIgnoreDir(t *testing.T) { + // In Plan 9, directories are automatically created in /n. + // For example, /n/go.mod always exist, but it's a directory. + // Test that we ignore directories when trying to find go.mod and other config files. + + dir, err := ioutil.TempDir("", "gotest") + if err != nil { + t.Fatalf("failed to create temporary directory: %v", err) + } + defer os.RemoveAll(dir) + if err := os.Mkdir(filepath.Join(dir, "go.mod"), os.ModeDir|0755); err != nil { + t.Fatalf("Mkdir failed: %v", err) + } + for _, name := range altConfigs { + if err := os.MkdirAll(filepath.Join(dir, name), os.ModeDir|0755); err != nil { + t.Fatalf("MkdirAll failed: %v", err) + } + } + p := filepath.Join(dir, "example") + if err := os.Mkdir(p, os.ModeDir|0755); err != nil { + t.Fatalf("Mkdir failed: %v", err) + } + if root, _ := FindModuleRoot(p, "", false); root != "" { + t.Errorf("FindModuleRoot(%q, \"\", false): %q, want empty string", p, root) + } + if root, _ := FindModuleRoot(p, "", true); root != "" { + t.Errorf("FindModuleRoot(%q, \"\", true): %q, want empty string", p, root) + } +} -- cgit v1.3-5-g9baa