Add urandom_test to all_tests.json Change-Id: I4e30bc8b8c1bd1215f516a6c89735782cfbf8ef5 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/38284 Reviewed-by: Adam Langley <agl@google.com> Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: Adam Langley <agl@google.com>
diff --git a/crypto/fipsmodule/rand/urandom_test.cc b/crypto/fipsmodule/rand/urandom_test.cc index 117c315..5935aaf 100644 --- a/crypto/fipsmodule/rand/urandom_test.cc +++ b/crypto/fipsmodule/rand/urandom_test.cc
@@ -21,7 +21,8 @@ #if defined(OPENSSL_X86_64) && defined(OPENSSL_LINUX) && \ - !defined(BORINGSSL_SHARED_LIBRARY) + !defined(BORINGSSL_SHARED_LIBRARY) && \ + !defined(BORINGSSL_UNSAFE_DETERMINISTIC_MODE) #include <linux/random.h> #include <sys/ptrace.h> @@ -466,6 +467,9 @@ #else -int main(int argc, char **argv) { return 0; } +int main(int argc, char **argv) { + printf("PASS\n"); + return 0; +} -#endif // X86_64 && LINUX && !SHARED_LIBRARY +#endif // X86_64 && LINUX && !SHARED_LIBRARY && !UNSAFE_DETERMINISTIC_MODE
diff --git a/util/all_tests.go b/util/all_tests.go index fbff48c..4dd7f2c 100644 --- a/util/all_tests.go +++ b/util/all_tests.go
@@ -55,6 +55,7 @@ } type test struct { + env []string args []string shard, numShards int // cpu, if not empty, contains a code to simulate. For SDE, run `sde64 @@ -148,7 +149,7 @@ prog := path.Join(*buildDir, test.args[0]) args := append([]string{}, test.args[1:]...) if *simulateARMCPUs && test.cpu != "" { - args = append(args, "--cpu=" + test.cpu) + args = append(args, "--cpu="+test.cpu) } if *useSDE { // SDE is neither compatible with the unwind tester nor automatically @@ -167,6 +168,11 @@ } else { cmd = exec.Command(prog, args...) } + if test.env != nil { + cmd.Env = make([]string, len(os.Environ())) + copy(cmd.Env, os.Environ()) + cmd.Env = append(cmd.Env, test.env...) + } var outBuf bytes.Buffer cmd.Stdout = &outBuf cmd.Stderr = &outBuf @@ -258,7 +264,12 @@ var result []test for _, args := range testArgs { - result = append(result, test{args: args}) + var env []string + for len(args) > 0 && strings.HasPrefix(args[0], "$") { + env = append(env, args[0][1:]) + args = args[1:] + } + result = append(result, test{args: args, env: env}) } return result, nil } @@ -272,11 +283,18 @@ } func (t test) shortName() string { - return t.args[0] + t.shardMsg() + t.cpuMsg() + return t.args[0] + t.shardMsg() + t.cpuMsg() + t.envMsg() +} + +func SpaceIf(returnSpace bool) string { + if !returnSpace { + return "" + } + return " " } func (t test) longName() string { - return strings.Join(t.args, " ") + t.cpuMsg() + return strings.Join(t.env, " ") + SpaceIf(len(t.env) != 0) + strings.Join(t.args, " ") + t.cpuMsg() } func (t test) shardMsg() string { @@ -295,6 +313,14 @@ return fmt.Sprintf(" (for CPU %q)", t.cpu) } +func (t test) envMsg() string { + if len(t.env) == 0 { + return "" + } + + return " (custom environment)" +} + func (t test) getGTestShards() ([]test, error) { if *numWorkers == 1 || len(t.args) != 1 { return []test{t}, nil
diff --git a/util/all_tests.json b/util/all_tests.json index 7152ec1..578b727 100644 --- a/util/all_tests.json +++ b/util/all_tests.json
@@ -1,5 +1,7 @@ [ ["crypto/crypto_test"], + ["crypto/urandom_test"], + ["$OPENSSL_ia32cap=~0x4000000000000000", "crypto/urandom_test"], ["crypto/crypto_test", "--fork_unsafe_buffering", "--gtest_filter=RandTest.*:-RandTest.Fork"], ["decrepit/decrepit_test"], ["ssl/ssl_test"]
diff --git a/util/run_android_tests.go b/util/run_android_tests.go index c5abdcb..60009a1 100644 --- a/util/run_android_tests.go +++ b/util/run_android_tests.go
@@ -135,7 +135,10 @@ panic("Couldn't find BUILDING.md in a parent directory!") } -type test []string +type test struct { + args []string + env []string +} func parseTestConfig(filename string) ([]test, error) { in, err := os.Open(filename) @@ -145,11 +148,22 @@ defer in.Close() decoder := json.NewDecoder(in) - var result []test + var result [][]string if err := decoder.Decode(&result); err != nil { return nil, err } - return result, nil + + tests := make([]test, 0, len(result)) + for _, args := range result { + var env []string + for len(args) > 0 && strings.HasPrefix(args[0], "$") { + env = append(env, args[0][1:]) + args = args[1:] + } + tests = append(tests, test{args: args, env: env}) + } + + return tests, nil } func copyFile(dst, src string) error { @@ -219,11 +233,11 @@ seenBinary := make(map[string]struct{}) for _, test := range tests { - if _, ok := seenBinary[test[0]]; !ok { - binaries = append(binaries, test[0]) - seenBinary[test[0]] = struct{}{} + if _, ok := seenBinary[test.args[0]]; !ok { + binaries = append(binaries, test.args[0]) + seenBinary[test.args[0]] = struct{}{} } - for _, arg := range test[1:] { + for _, arg := range test.args[1:] { if strings.Contains(arg, "/") { files = append(files, arg) }