From 2693232f16fb91d715349b81bbb7af3c96c5459e Mon Sep 17 00:00:00 2001 From: Sanjay Menakuru Date: Thu, 5 Jan 2012 10:37:15 +1100 Subject: [PATCH] cmd/go: include external test files in the files sent to gofmt, govet, and gofix Also, add XTestGoFiles to the go command's public api. Fixes #2649. R=golang-dev, adg CC=golang-dev https://golang.org/cl/5502102 --- src/cmd/go/list.go | 13 ++++++----- src/cmd/go/pkg.go | 57 +++++++++++++++++++++++++--------------------- 2 files changed, 38 insertions(+), 32 deletions(-) diff --git a/src/cmd/go/list.go b/src/cmd/go/list.go index 9a1a4ecb14c..2ffaa2f13fb 100644 --- a/src/cmd/go/list.go +++ b/src/cmd/go/list.go @@ -36,12 +36,13 @@ being passed to the template is: Stale bool // would 'go install' do anything for this package? // Source files - GoFiles []string // .go source files (excluding CgoFiles and TestGoFiles) - TestGoFiles []string // _test.go source files - CFiles []string // .c source files - HFiles []string // .h source files - SFiles []string // .s source files - CgoFiles []string // .go sources files that import "C" + GoFiles []string // .go source files (excluding CgoFiles, TestGoFiles, and XTestGoFiles) + TestGoFiles []string // _test.go source files internal to the package they are testing + XTestGoFiles []string // _test.go source files external to the package they are testing + CFiles []string // .c source files + HFiles []string // .h source files + SFiles []string // .s source files + CgoFiles []string // .go sources files that import "C" // Dependency information Imports []string // import paths used by this package diff --git a/src/cmd/go/pkg.go b/src/cmd/go/pkg.go index d66f5242693..02a7d5b2168 100644 --- a/src/cmd/go/pkg.go +++ b/src/cmd/go/pkg.go @@ -29,14 +29,15 @@ type Package struct { Stale bool `json:",omitempty"` // would 'go install' do anything for this package? // Source files - GoFiles []string // .go source files (excluding CgoFiles and TestGoFiles) - TestGoFiles []string `json:",omitempty"` // _test.go source files - CFiles []string `json:",omitempty"` // .c source files - HFiles []string `json:",omitempty"` // .h source files - SFiles []string `json:",omitempty"` // .s source files - CgoFiles []string `json:",omitempty"` // .go sources files that import "C" - CgoCFLAGS []string `json:",omitempty"` // cgo: flags for C compiler - CgoLDFLAGS []string `json:",omitempty"` // cgo: flags for linker + GoFiles []string // .go source files (excluding CgoFiles, TestGoFiles and XTestGoFiles) + TestGoFiles []string `json:",omitempty"` // _test.go source files internal to the package they are testing + XTestGoFiles []string `json:",omitempty"` //_test.go source files external to the package they are testing + CFiles []string `json:",omitempty"` // .c source files + HFiles []string `json:",omitempty"` // .h source files + SFiles []string `json:",omitempty"` // .s source files + CgoFiles []string `json:",omitempty"` // .go sources files that import "C" + CgoCFLAGS []string `json:",omitempty"` // cgo: flags for C compiler + CgoLDFLAGS []string `json:",omitempty"` // cgo: flags for linker // Dependency information Imports []string `json:",omitempty"` // import paths used by this package @@ -47,7 +48,7 @@ type Package struct { pkgdir string info *build.DirInfo imports []*Package - gofiles []string // GoFiles+CgoFiles+TestGoFiles files, absolute paths + gofiles []string // GoFiles+CgoFiles+TestGoFiles+XTestGoFiles files, absolute paths target string // installed file for this package (may be executable) fake bool // synthesized package } @@ -127,23 +128,24 @@ func scanPackage(ctxt *build.Context, t *build.Tree, arg, importPath, dir string } p := &Package{ - Name: info.Package, - Doc: doc.CommentText(info.PackageComment), - ImportPath: importPath, - Dir: dir, - Imports: info.Imports, - GoFiles: info.GoFiles, - TestGoFiles: info.TestGoFiles, - CFiles: info.CFiles, - HFiles: info.HFiles, - SFiles: info.SFiles, - CgoFiles: info.CgoFiles, - CgoCFLAGS: info.CgoCFLAGS, - CgoLDFLAGS: info.CgoLDFLAGS, - Standard: t.Goroot && !strings.Contains(importPath, "."), - target: target, - t: t, - info: info, + Name: info.Package, + Doc: doc.CommentText(info.PackageComment), + ImportPath: importPath, + Dir: dir, + Imports: info.Imports, + GoFiles: info.GoFiles, + TestGoFiles: info.TestGoFiles, + XTestGoFiles: info.XTestGoFiles, + CFiles: info.CFiles, + HFiles: info.HFiles, + SFiles: info.SFiles, + CgoFiles: info.CgoFiles, + CgoCFLAGS: info.CgoCFLAGS, + CgoLDFLAGS: info.CgoLDFLAGS, + Standard: t.Goroot && !strings.Contains(importPath, "."), + target: target, + t: t, + info: info, } var built time.Time @@ -162,6 +164,9 @@ func scanPackage(ctxt *build.Context, t *build.Tree, arg, importPath, dir string for _, f := range info.TestGoFiles { p.gofiles = append(p.gofiles, filepath.Join(dir, f)) } + for _, f := range info.XTestGoFiles { + p.gofiles = append(p.gofiles, filepath.Join(dir, f)) + } sort.Strings(p.gofiles)