internal/gen: allow tests to pass if GOPATH is not set This may make it easier to pass tests alternative build setups. Change-Id: Ib0465792e198261031449536f615200e55e2be0e Reviewed-on: https://go-review.googlesource.com/31392 TryBot-Result: Gobot Gobot <gobot@golang.org> Run-TryBot: Marcel van Lohuizen <mpvl@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/internal/gen/gen.go b/internal/gen/gen.go index 9eb2987..84c699f 100644 --- a/internal/gen/gen.go +++ b/internal/gen/gen.go
@@ -85,7 +85,11 @@ // IsLocal reports whether data files are available locally. func IsLocal() bool { - if _, err := os.Stat(localReadmeFile()); err != nil { + dir, err := localReadmeFile() + if err != nil { + return false + } + if _, err = os.Stat(dir); err != nil { return false } return true @@ -130,19 +134,22 @@ const permissions = 0755 -func localReadmeFile() string { +func localReadmeFile() (string, error) { p, err := build.Import("golang.org/x/text", "", build.FindOnly) if err != nil { - log.Fatalf("Could not locate package: %v", err) + return "", fmt.Errorf("Could not locate package: %v", err) } - return filepath.Join(p.Dir, "DATA", "README") + return filepath.Join(p.Dir, "DATA", "README"), nil } func getLocalDir() string { dirMutex.Lock() defer dirMutex.Unlock() - readme := localReadmeFile() + readme, err := localReadmeFile() + if err != nil { + log.Fatal(err) + } dir := filepath.Dir(readme) if _, err := os.Stat(readme); err != nil { if err := os.MkdirAll(dir, permissions); err != nil {