| // Copyright 2015 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 ( |
| "fmt" |
| "go/build" |
| "path/filepath" |
| "runtime" |
| "strings" |
| "testing" |
| |
| "golang.org/x/tools/go/buildutil" |
| ) |
| |
| func testContainingPackageCaseFold(file, want string) error { |
| bp, err := buildutil.ContainingPackage(&build.Default, ".", file) |
| if err != nil { |
| return err |
| } |
| if got := bp.ImportPath; got != want { |
| return fmt.Errorf("ContainingPackage(%q) = %s, want %s", file, got, want) |
| } |
| return nil |
| } |
| |
| func TestContainingPackageCaseFold(t *testing.T) { |
| path := filepath.Join(runtime.GOROOT(), `src\fmt\print.go`) |
| err := testContainingPackageCaseFold(path, "fmt") |
| if err != nil { |
| t.Error(err) |
| } |
| vol := filepath.VolumeName(path) |
| if len(vol) != 2 || vol[1] != ':' { |
| t.Fatalf("GOROOT path has unexpected volume name: %v", vol) |
| } |
| rest := path[len(vol):] |
| err = testContainingPackageCaseFold(strings.ToUpper(vol)+rest, "fmt") |
| if err != nil { |
| t.Error(err) |
| } |
| err = testContainingPackageCaseFold(strings.ToLower(vol)+rest, "fmt") |
| if err != nil { |
| t.Error(err) |
| } |
| } |