sweet: make it clear which benchmarks failed

Currently if there's a failure, you just get a message like "benchmarks
failed to execute" but that's not very specific. It can make recent logs
look like the culprit, when really it's further up in the log.

Change-Id: Ib6ac96335b00418041495e5d1f9a6e2db920d387
Reviewed-on: https://go-review.googlesource.com/c/benchmarks/+/614315
Reviewed-by: Michael Pratt <mpratt@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
diff --git a/sweet/cmd/sweet/run.go b/sweet/cmd/sweet/run.go
index fce8f1e..f4fa4b5 100644
--- a/sweet/cmd/sweet/run.go
+++ b/sweet/cmd/sweet/run.go
@@ -379,18 +379,18 @@
 	}
 
 	// Execute each benchmark for all configs.
-	var errEncountered bool
+	var failedBenchmarks []string
 	for _, b := range benchmarks {
 		if err := b.execute(configs, &c.runCfg); err != nil {
 			if c.stopOnError {
 				return err
 			}
-			errEncountered = true
+			failedBenchmarks = append(failedBenchmarks, b.name)
 			log.Error(err)
 		}
 	}
-	if errEncountered {
-		return fmt.Errorf("failed to execute benchmarks, see log for details")
+	if len(failedBenchmarks) != 0 {
+		return fmt.Errorf("failed to execute benchmarks: %s", strings.Join(failedBenchmarks, " "))
 	}
 	return nil
 }