dashboard: add tests for ShouldRunDistTest
Fixes a TODO that this was untested. (It used to be scattered all over
and hard to test, but now we have all the policy behind a single
method, so test it.)
And add tests for golang/go#29509 too, which seems like it should work.
Change-Id: I6d1f517e2014766c26538193c6b42106a4078a9b
Reviewed-on: https://go-review.googlesource.com/c/build/+/170398
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
diff --git a/dashboard/builders.go b/dashboard/builders.go
index c1425e6..0bc8e8b 100644
--- a/dashboard/builders.go
+++ b/dashboard/builders.go
@@ -972,7 +972,6 @@
// otherwise. Certain portable, slow tests are only run on fast builders in
// trybot mode.
func (c *BuildConfig) ShouldRunDistTest(distTest string, isTry bool) bool {
- // TODO: add a table of tests in builders_test.go.
if c.shouldRunDistTest != nil {
return c.shouldRunDistTest(distTest, isTry)
}
diff --git a/dashboard/builders_test.go b/dashboard/builders_test.go
index cbae025..8e6d5f2 100644
--- a/dashboard/builders_test.go
+++ b/dashboard/builders_test.go
@@ -489,3 +489,49 @@
t.Error("got = false; want true")
}
}
+
+func TestShouldRunDistTest(t *testing.T) {
+ type buildMode int
+ const (
+ tryMode buildMode = 0
+ postSubmit buildMode = 1
+ )
+
+ tests := []struct {
+ builder string
+ test string
+ mode buildMode
+ want bool
+ }{
+ {"linux-amd64", "api", postSubmit, true},
+ {"linux-amd64", "api", tryMode, true},
+
+ {"linux-amd64", "reboot", tryMode, true},
+ {"linux-amd64-race", "reboot", tryMode, false},
+
+ {"darwin-amd64-10_10", "test:foo", postSubmit, false},
+ {"darwin-amd64-10_11", "test:foo", postSubmit, false},
+ {"darwin-amd64-10_12", "test:foo", postSubmit, false},
+ {"darwin-amd64-10_14", "test:foo", postSubmit, false},
+ {"darwin-amd64-10_14", "test:foo", postSubmit, false},
+ {"darwin-amd64-10_14", "reboot", postSubmit, false},
+ {"darwin-amd64-10_14", "api", postSubmit, false},
+ {"darwin-amd64-10_14", "codewalk", postSubmit, false},
+ }
+ for _, tt := range tests {
+ bc, ok := Builders[tt.builder]
+ if !ok {
+ t.Errorf("unknown builder %q", tt.builder)
+ continue
+ }
+ isTry := tt.mode == tryMode
+ if isTry && !bc.BuildsRepoTryBot("go", "master", "master") {
+ t.Errorf("builder %q is not a trybot, so can't run test %q in try mode", tt.builder, tt.test)
+ continue
+ }
+ got := bc.ShouldRunDistTest(tt.test, isTry)
+ if got != tt.want {
+ t.Errorf("%q.ShouldRunDistTest(%q, try %v) = %v; want %v", tt.builder, tt.test, isTry, got, tt.want)
+ }
+ }
+}