dashboard: only run linux-386-387 builder on Go 1.15 and older

Also update some test cases to be more relevant.

For golang/go#40255.
Fixes golang/go#41799.

Change-Id: Ie63e068a46058bcaf7866f2090049fb888612cbe
Reviewed-on: https://go-review.googlesource.com/c/build/+/259449
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
Trust: Dmitri Shuralyov <dmitshur@golang.org>
diff --git a/dashboard/builders.go b/dashboard/builders.go
index 6d597a4..5365d4c 100644
--- a/dashboard/builders.go
+++ b/dashboard/builders.go
@@ -1489,7 +1489,9 @@
 		Name:  "linux-386-387",
 		Notes: "GO386=387",
 		buildsRepo: func(repo, branch, goBranch string) bool {
-			return repo == "go" || (repo == "crypto" && branch == "master" && goBranch == "master")
+			// GO386=387 is removed in Go 1.16 (golang.org/issue/40255).
+			// It's still supported in Go 1.15 and 1.14.
+			return atMostGo1(goBranch, 15) && (repo == "go" || repo == "crypto")
 		},
 		HostType: "host-linux-jessie",
 		env:      []string{"GOARCH=386", "GOHOSTARCH=386", "GO386=387"},
diff --git a/dashboard/builders_test.go b/dashboard/builders_test.go
index 22a9271..114ff17 100644
--- a/dashboard/builders_test.go
+++ b/dashboard/builders_test.go
@@ -307,9 +307,14 @@
 
 		// Don't test all subrepos on all the builders.
 		{b("linux-amd64-ssacheck", "net"), none},
-		{b("linux-amd64-ssacheck@go1.10", "net"), none},
-		{b("linux-386-387", "crypto"), onlyPost},
-		{b("linux-arm-arm5spacemonkey@go1.12", "net"), none},
+		{b("linux-amd64-ssacheck@go1.15", "net"), none},
+		{b("linux-386-387", "crypto"), none},
+		{b("linux-386-387@go1.16", "crypto"), none},
+		{b("linux-386-387@go1.15", "crypto"), onlyPost},
+		{b("linux-386-387@go1.15", "crypto@1.15"), onlyPost},
+		{b("linux-386-387@go1.15", "build"), none},
+		{b("linux-386-387@go1.14", "crypto"), onlyPost},
+		{b("linux-arm-arm5spacemonkey@go1.15", "net"), none},
 		{b("linux-arm-arm5spacemonkey", "exp"), none},
 		{b("linux-arm-arm5spacemonkey", "mobile"), none},