12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package main
- import (
- "fmt"
- "strings"
- "golang.org/x/tools/go/packages"
- )
- func testFilesImportTheirOwnPackage(packagePath string) bool {
- meta, err := packages.Load(
- &packages.Config{
- Mode: packages.NeedName | packages.NeedImports,
- Tests: true,
- },
- packagePath,
- )
- if err != nil {
- return false
- }
- testPackageID := fmt.Sprintf("%s [%s.test]", meta[0], meta[0])
- for _, testPackage := range meta[1:] {
- if testPackage.ID != testPackageID {
- continue
- }
- for dependency := range testPackage.Imports {
- if dependency == meta[0].PkgPath {
- return true
- }
- }
- break
- }
- return false
- }
- func resolvePackageName(path string) string {
- pkg, err := packages.Load(
- &packages.Config{
- Mode: packages.NeedName,
- },
- path,
- )
- if err == nil {
- return pkg[0].PkgPath
- }
- nameArr := strings.Split(path, endGoPath)
- return nameArr[len(nameArr)-1]
- }
|