LCOV - code coverage report
Current view: top level - src/test/util - random.h Coverage Total Hit
Test: total_coverage.info Lines: 100.0 % 2 2
Test Date: 2025-01-19 05:08:01 Functions: - 0 0

            Line data    Source code
       1              : // Copyright (c) 2023-present The Bitcoin Core developers
       2              : // Distributed under the MIT software license, see the accompanying
       3              : // file COPYING or http://www.opensource.org/licenses/mit-license.php.
       4              : 
       5              : #ifndef BITCOIN_TEST_UTIL_RANDOM_H
       6              : #define BITCOIN_TEST_UTIL_RANDOM_H
       7              : 
       8              : #include <consensus/amount.h>
       9              : #include <random.h>
      10              : #include <uint256.h>
      11              : 
      12              : #include <atomic>
      13              : #include <cstdint>
      14              : 
      15              : enum class SeedRand {
      16              :     /**
      17              :      * Seed with a compile time constant of zeros.
      18              :      */
      19              :     ZEROS,
      20              :     /**
      21              :      * Seed with a fixed value that never changes over the lifetime of this
      22              :      * process. The seed is read from the RANDOM_CTX_SEED environment variable
      23              :      * if set, otherwise generated randomly once, saved, and reused.
      24              :      */
      25              :     FIXED_SEED,
      26              : };
      27              : 
      28              : /** Seed the global RNG state for testing and log the seed value. This affects all randomness, except GetStrongRandBytes(). */
      29              : void SeedRandomStateForTest(SeedRand seed);
      30              : 
      31              : extern std::atomic<bool> g_seeded_g_prng_zero;
      32              : extern std::atomic<bool> g_used_g_prng;
      33              : 
      34              : template <RandomNumberGenerator Rng>
      35       174110 : inline CAmount RandMoney(Rng&& rng)
      36              : {
      37       348220 :     return CAmount{rng.randrange(MAX_MONEY + 1)};
      38              : }
      39              : 
      40              : #endif // BITCOIN_TEST_UTIL_RANDOM_H
        

Generated by: LCOV version 2.0-1