shad-go/tools/testtool/commands/list.go

55 lines
1.4 KiB
Go

package commands
import (
"sort"
"strings"
)
// listTestFiles returns absolute paths for all _test.go files of the package
// including the ones with "private" build tag.
func listTestFiles(rootPackage string) []string {
files := getPackageFiles(rootPackage, []string{"-tags", "private"})
var tests []string
for f := range files {
if strings.HasSuffix(f, "_test.go") {
tests = append(tests, f)
}
}
sort.Strings(tests)
return tests
}
// listProtectedFiles returns absolute paths for all files of the package
// protected by "!change" build tag.
func listProtectedFiles(rootPackage string) []string {
allFiles := getPackageFiles(rootPackage, nil)
allFilesWithoutProtected := getPackageFiles(rootPackage, []string{"-tags", "change"})
var protectedFiles []string
for f := range allFiles {
if _, ok := allFilesWithoutProtected[f]; !ok {
protectedFiles = append(protectedFiles, f)
}
}
sort.Strings(protectedFiles)
return protectedFiles
}
// listPrivateFiles returns absolute paths for all files of the package
// protected by "private,solution" build tag.
func listPrivateFiles(rootPackage string) []string {
allFiles := getPackageFiles(rootPackage, []string{})
allWithPrivate := getPackageFiles(rootPackage, []string{"-tags", "private,solution"})
var files []string
for f := range allWithPrivate {
if _, isPublic := allFiles[f]; !isPublic {
files = append(files, f)
}
}
sort.Strings(files)
return files
}