external/boringssl: Sync to 575334657fcb66a4861c9d125430b2aef60476a6.

This includes the following changes:

https://boringssl.googlesource.com/boringssl/+log/3a18bf04745c0ef9850efeec1a52e402c4392388..575334657fcb66a4861c9d125430b2aef60476a6

Test: BoringSSL CTS Presubmits
Change-Id: I1cb1136aa2bc2270e2dfc77e2b7302f2403590b6
diff --git a/src/util/all_tests.go b/src/util/all_tests.go
index ef23080..d5794fc 100644
--- a/src/util/all_tests.go
+++ b/src/util/all_tests.go
@@ -48,7 +48,8 @@
 )
 
 type test struct {
-	args []string
+	args             []string
+	shard, numShards int
 	// cpu, if not empty, contains an Intel CPU code to simulate. Run
 	// `sde64 -help` to get a list of these codes.
 	cpu string
@@ -259,19 +260,6 @@
 	}
 }
 
-// shortTestName returns the short name of a test. Except for evp_test and
-// cipher_test, it assumes that any argument which ends in .txt is a path to a
-// data file and not relevant to the test's uniqueness.
-func shortTestName(test test) string {
-	var args []string
-	for _, arg := range test.args {
-		if test.args[0] == "crypto/evp/evp_test" || test.args[0] == "crypto/cipher_extra/cipher_test" || test.args[0] == "crypto/cipher_extra/aead_test" || !strings.HasSuffix(arg, ".txt") || strings.HasPrefix(arg, "--gtest_filter=") {
-			args = append(args, arg)
-		}
-	}
-	return strings.Join(args, " ") + test.cpuMsg()
-}
-
 // setWorkingDirectory walks up directories as needed until the current working
 // directory is the top of a BoringSSL checkout.
 func setWorkingDirectory() {
@@ -313,6 +301,22 @@
 	}
 }
 
+func (t test) shortName() string {
+	return t.args[0] + t.shardMsg() + t.cpuMsg()
+}
+
+func (t test) longName() string {
+	return strings.Join(t.args, " ") + t.cpuMsg()
+}
+
+func (t test) shardMsg() string {
+	if t.numShards == 0 {
+		return ""
+	}
+
+	return fmt.Sprintf(" [shard %d/%d]", t.shard+1, t.numShards)
+}
+
 func (t test) cpuMsg() string {
 	if len(t.cpu) == 0 {
 		return ""
@@ -389,9 +393,14 @@
 		}
 		shard := t
 		shard.args = []string{shard.args[0], "--gtest_filter=" + strings.Join(shuffled[i:i+n], ":")}
+		shard.shard = len(shards)
 		shards = append(shards, shard)
 	}
 
+	for i := range shards {
+		shards[i].numShards = len(shards)
+	}
+
 	return shards, nil
 }
 
@@ -447,18 +456,19 @@
 		test := testResult.Test
 		args := test.args
 
-		fmt.Printf("%s%s\n", strings.Join(args, " "), test.cpuMsg())
-		name := shortTestName(test)
 		if testResult.Error != nil {
+			fmt.Printf("%s\n", test.longName())
 			fmt.Printf("%s failed to complete: %s\n", args[0], testResult.Error)
 			failed = append(failed, test)
-			testOutput.addResult(name, "CRASHED")
+			testOutput.addResult(test.longName(), "CRASHED")
 		} else if !testResult.Passed {
+			fmt.Printf("%s\n", test.longName())
 			fmt.Printf("%s failed to print PASS on the last line.\n", args[0])
 			failed = append(failed, test)
-			testOutput.addResult(name, "FAIL")
+			testOutput.addResult(test.longName(), "FAIL")
 		} else {
-			testOutput.addResult(name, "PASS")
+			fmt.Printf("%s\n", test.shortName())
+			testOutput.addResult(test.longName(), "PASS")
 		}
 	}