tstest/integration: use go binary from runtime.GOROOT
@@ -105,13 +105,34 @@ func TestIntegration(t *testing.T) {
t.Logf("number of HTTP logcatcher requests: %v", logc.numRequests())
}
+func exe() string {
+ if runtime.GOOS == "windows" {
+ return ".exe"
+ }
+ return ""
+}
+
+func findGo(t *testing.T) string {
+ goBin := filepath.Join(runtime.GOROOT(), "bin", "go"+exe())
+ if fi, err := os.Stat(goBin); err != nil {
+ if os.IsNotExist(err) {
+ t.Fatalf("failed to find go at %v", goBin)
+ }
+ t.Fatalf("looking for go binary: %v", err)
+ } else if !fi.Mode().IsRegular() {
+ t.Fatalf("%v is unexpected %v", goBin, fi.Mode())
+ }
+ t.Logf("using go binary %v", goBin)
+ return goBin
+}
+
func build(t *testing.T, outDir, target string) string {
exe := ""
if runtime.GOOS == "windows" {
exe = ".exe"
}
bin := filepath.Join(outDir, path.Base(target)) + exe
- errOut, err := exec.Command("go", "build", "-o", bin, target).CombinedOutput()
+ errOut, err := exec.Command(findGo(t), "build", "-o", bin, target).CombinedOutput()
if err != nil {
t.Fatalf("failed to build %v: %v, %s", target, err, errOut)
}
