diff options
Diffstat (limited to 'test/rng_benchmark.cc')
-rw-r--r-- | test/rng_benchmark.cc | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/test/rng_benchmark.cc b/test/rng_benchmark.cc deleted file mode 100644 index 2e47b8ea27..0000000000 --- a/test/rng_benchmark.cc +++ /dev/null @@ -1,81 +0,0 @@ -/* Copyright 2022 The ChromiumOS Authors - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - * - * Measure performance of the hardware True Random Number Generator (TRNG) - * compared to the std::rand(). - */ - -#include "benchmark.h" - -#include "console.h" -#include <array> -#include <cstdint> -#include <cstdlib> - -extern "C" { -#include "test_util.h" -#include "trng.h" -} - -test_static int test_rng() -{ - constexpr int num_iterations = 100; - Benchmark benchmark({ .num_iterations = num_iterations }); - std::array<uint32_t, num_iterations> trng_out; - std::array<int, num_iterations> rand_out; - - // Try the hardware true random number generator - trng_out.fill(0); - - trng_init(); - auto result = benchmark.run("trng", [&trng_out]() { - static int i = 0; - trng_out[i++] = trng_rand(); - }); - trng_exit(); - - TEST_ASSERT(result.has_value()); - for (int i = 0; i < trng_out.size() - 1; ++i) { - TEST_NE(trng_out[i], trng_out[i + 1], "%d"); - cflush(); - } - - // Repeat the test by turning the TNRG on and off at each iteration - trng_out.fill(0); - result = benchmark.run("trng_on_off", [&trng_out]() { - trng_init(); - static int i = 0; - trng_out[i++] = trng_rand(); - trng_exit(); - }); - - TEST_ASSERT(result.has_value()); - for (int i = 0; i < trng_out.size() - 1; ++i) { - TEST_NE(trng_out[i], trng_out[i + 1], "%d"); - cflush(); - } - - // Repeat the test using std::rand() for comparison - rand_out.fill(0); - result = benchmark.run("std::rand", [&rand_out]() { - static int i = 0; - rand_out[i++] = std::rand(); - }); - - TEST_ASSERT(result.has_value()); - for (int i = 0; i < rand_out.size() - 1; ++i) { - TEST_NE(rand_out[i], rand_out[i + 1], "%d"); - cflush(); - } - - benchmark.print_results(); - return EC_SUCCESS; -} - -void run_test(int argc, const char **argv) -{ - test_reset(); - RUN_TEST(test_rng); - test_print_result(); -}
\ No newline at end of file |