Include Package.XTestImports in test imports
diff --git a/dependency/resolver.go b/dependency/resolver.go
index b3000ee..edcc13c 100644
--- a/dependency/resolver.go
+++ b/dependency/resolver.go
@@ -3,6 +3,7 @@
import (
"container/list"
"runtime"
+ "sort"
//"go/build"
"os"
"path/filepath"
@@ -303,7 +304,7 @@
}
} else {
imps = p.Imports
- testImps = p.TestImports
+ testImps = dedupeStrings(p.TestImports, p.XTestImports)
}
// We are only looking for dependencies in vendor. No root, cgo, etc.
@@ -536,7 +537,7 @@
continue
} else {
if testDeps {
- imps = pkg.TestImports
+ imps = dedupeStrings(pkg.TestImports, pkg.XTestImports)
} else {
imps = pkg.Imports
}
@@ -799,7 +800,7 @@
return []string{}, err
} else {
if testDeps {
- imps = p.TestImports
+ imps = dedupeStrings(p.TestImports, p.XTestImports)
} else {
imps = p.Imports
}
@@ -1078,3 +1079,29 @@
return basedir, nil
}
+
+// helper func to merge, dedupe, and sort strings
+func dedupeStrings(s1, s2 []string) (r []string) {
+ dedupe := make(map[string]bool)
+
+ if len(s1) > 0 && len(s2) > 0 {
+ for _, i := range s1 {
+ dedupe[i] = true
+ }
+ for _, i := range s2 {
+ dedupe[i] = true
+ }
+
+ for i := range dedupe {
+ r = append(r, i)
+ }
+ // And then re-sort them
+ sort.Strings(r)
+ } else if len(s1) > 0 {
+ r = s1
+ } else if len(s2) > 0 {
+ r = s2
+ }
+
+ return
+}