From b1247d2d0d51108c910a73891ff3116e5f032ab1 Mon Sep 17 00:00:00 2001 From: "Kali Kaneko (leap communications)" Date: Sat, 12 Jan 2019 18:39:45 +0100 Subject: [pkg] all your deps are vendored to us --- .../golang.org/x/tools/go/buildutil/util_test.go | 72 ++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 vendor/golang.org/x/tools/go/buildutil/util_test.go (limited to 'vendor/golang.org/x/tools/go/buildutil/util_test.go') diff --git a/vendor/golang.org/x/tools/go/buildutil/util_test.go b/vendor/golang.org/x/tools/go/buildutil/util_test.go new file mode 100644 index 0000000..72db317 --- /dev/null +++ b/vendor/golang.org/x/tools/go/buildutil/util_test.go @@ -0,0 +1,72 @@ +// Copyright 2014 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 buildutil_test + +import ( + "go/build" + "io/ioutil" + "os" + "path/filepath" + "runtime" + "testing" + + "golang.org/x/tools/go/buildutil" +) + +func TestContainingPackage(t *testing.T) { + // unvirtualized: + goroot := runtime.GOROOT() + gopath := filepath.SplitList(os.Getenv("GOPATH"))[0] + + type Test struct { + gopath, filename, wantPkg string + } + + tests := []Test{ + {gopath, goroot + "/src/fmt/print.go", "fmt"}, + {gopath, goroot + "/src/encoding/json/foo.go", "encoding/json"}, + {gopath, goroot + "/src/encoding/missing/foo.go", "(not found)"}, + {gopath, gopath + "/src/golang.org/x/tools/go/buildutil/util_test.go", + "golang.org/x/tools/go/buildutil"}, + } + + if runtime.GOOS != "windows" && runtime.GOOS != "plan9" { + // Make a symlink to gopath for test + tmp, err := ioutil.TempDir(os.TempDir(), "go") + if err != nil { + t.Errorf("Unable to create a temporary directory in %s", os.TempDir()) + } + + defer os.RemoveAll(tmp) + + // symlink between $GOPATH/src and /tmp/go/src + // in order to test all possible symlink cases + if err := os.Symlink(gopath+"/src", tmp+"/src"); err != nil { + t.Fatal(err) + } + tests = append(tests, []Test{ + {gopath, tmp + "/src/golang.org/x/tools/go/buildutil/util_test.go", "golang.org/x/tools/go/buildutil"}, + {tmp, gopath + "/src/golang.org/x/tools/go/buildutil/util_test.go", "golang.org/x/tools/go/buildutil"}, + {tmp, tmp + "/src/golang.org/x/tools/go/buildutil/util_test.go", "golang.org/x/tools/go/buildutil"}, + }...) + } + + for _, test := range tests { + var got string + var buildContext = build.Default + buildContext.GOPATH = test.gopath + bp, err := buildutil.ContainingPackage(&buildContext, ".", test.filename) + if err != nil { + got = "(not found)" + } else { + got = bp.ImportPath + } + if got != test.wantPkg { + t.Errorf("ContainingPackage(%q) = %s, want %s", test.filename, got, test.wantPkg) + } + } + + // TODO(adonovan): test on virtualized GOPATH too. +} -- cgit v1.2.3