summaryrefslogtreecommitdiff
path: root/test/rng_benchmark.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/rng_benchmark.cc')
-rw-r--r--test/rng_benchmark.cc81
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