]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: reject relative paths that don't start with a dot (.)
authorChris Broadfoot <cbro@golang.org>
Thu, 4 Jun 2015 23:16:14 +0000 (16:16 -0700)
committerChris Broadfoot <cbro@golang.org>
Thu, 11 Jun 2015 16:13:37 +0000 (16:13 +0000)
Change-Id: Idc4a7fdb561ba5b3b52094d895deaf3fcdf475bf
Reviewed-on: https://go-review.googlesource.com/10716
Reviewed-by: Andrew Gerrand <adg@golang.org>
src/cmd/go/go_test.go
src/cmd/go/main.go

index 4d9d90ad58ee5c09a0e2dbc9f45189e6fbc78598..87ff6e57f5ac027db5a2836ecebda6d983dfe574 100644 (file)
@@ -1036,11 +1036,12 @@ func TestInstalls(t *testing.T) {
        tg.wantExecutable(tg.path("bin/progname")+exeSuffix, "did not install progname to $GOPATH/bin/progname")
 }
 
-func TestRejectRelativePathsInGOPATHCommandLinePackage(t *testing.T) {
+func TestRejectRelativeDotPathInGOPATHCommandLinePackage(t *testing.T) {
        tg := testgo(t)
        defer tg.cleanup()
        tg.setenv("GOPATH", ".")
        tg.runFail("build", "testdata/src/go-cmd-test/helloworld.go")
+       tg.grepStderr("GOPATH entry is relative", "expected an error message rejecting relative GOPATH entries")
 }
 
 func TestRejectRelativePathsInGOPATH(t *testing.T) {
@@ -1049,6 +1050,15 @@ func TestRejectRelativePathsInGOPATH(t *testing.T) {
        sep := string(filepath.ListSeparator)
        tg.setenv("GOPATH", sep+filepath.Join(tg.pwd(), "testdata")+sep+".")
        tg.runFail("build", "go-cmd-test")
+       tg.grepStderr("GOPATH entry is relative", "expected an error message rejecting relative GOPATH entries")
+}
+
+func TestRejectRelativePathsInGOPATHCommandLinePackage(t *testing.T) {
+       tg := testgo(t)
+       defer tg.cleanup()
+       tg.setenv("GOPATH", "testdata")
+       tg.runFail("build", "testdata/src/go-cmd-test/helloworld.go")
+       tg.grepStderr("GOPATH entry is relative", "expected an error message rejecting relative GOPATH entries")
 }
 
 // Issue 4104.
index b0d74484a6ae7372f1433d7af7dbc489cd859251..1bd75401cb01ea46cacadcbbbefe4666ba451c12 100644 (file)
@@ -142,7 +142,7 @@ func main() {
                                fmt.Fprintf(os.Stderr, "go: GOPATH entry cannot start with shell metacharacter '~': %q\n", p)
                                os.Exit(2)
                        }
-                       if build.IsLocalImport(p) {
+                       if !filepath.IsAbs(p) {
                                fmt.Fprintf(os.Stderr, "go: GOPATH entry is relative; must be absolute path: %q.\nRun 'go help gopath' for usage.\n", p)
                                os.Exit(2)
                        }