cmd/coordinator: query list of dist tests to run
Change-Id: I9be6a50f172f08e24cd81d872e7ce8fe3ce34064
Reviewed-on: https://go-review.googlesource.com/10462
Reviewed-by: Andrew Gerrand <adg@golang.org>
diff --git a/cmd/coordinator/coordinator.go b/cmd/coordinator/coordinator.go
index 26ceed7..198d1d1 100644
--- a/cmd/coordinator/coordinator.go
+++ b/cmd/coordinator/coordinator.go
@@ -1082,6 +1082,12 @@
return fmt.Errorf("writeSnapshot: %v", err)
}
+ tests, err := st.distTestList()
+ if err != nil {
+ return fmt.Errorf("distTestList: %v", err)
+ }
+ fmt.Fprintf(st, "Number of dist tests to run: %d\n", len(tests))
+
runScript := st.conf.RunScript()
lastScript = runScript
remoteErr, err = bc.Exec(path.Join("go", runScript), buildlet.ExecOpts{
@@ -1174,6 +1180,24 @@
return wr.Close()
}
+func (st *buildStatus) distTestList() (names []string, err error) {
+ var buf bytes.Buffer
+ remoteErr, err := st.bc.Exec(path.Join("go", "bin", "go"), buildlet.ExecOpts{
+ Output: &buf,
+ ExtraEnv: st.conf.Env(),
+ OnStartExec: func() { st.logEventTime("discovering_tests") },
+ Path: []string{"$WORKDIR/go/bin", "$PATH"},
+ Args: []string{"tool", "dist", "test", "--no-rebuild", "--list"},
+ })
+ if err != nil {
+ return nil, fmt.Errorf("Exec error: %v, %s", remoteErr, buf.Bytes())
+ }
+ if remoteErr != nil {
+ return nil, fmt.Errorf("Remote error: %v, %s", remoteErr, buf.Bytes())
+ }
+ return strings.Fields(buf.String()), nil
+}
+
type eventAndTime struct {
evt string
t time.Time