|  | // 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) | 
|  | } | 
|  | } |