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)
+		}
+	}
+}
