LCOV - code coverage report
Current view: top level - src/test/util - random.h (source / functions) Coverage Total Hit
Test: total_coverage.info Lines: 100.0 % 2 2
Test Date: 2024-11-04 05:10:19 Functions: - 0 0
Branches: - 0 0

             Branch data     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 <cstdint>
      13                 :             : 
      14                 :             : enum class SeedRand {
      15                 :             :     /**
      16                 :             :      * Seed with a compile time constant of zeros.
      17                 :             :      */
      18                 :             :     ZEROS,
      19                 :             :     /**
      20                 :             :      * Seed with a fixed value that never changes over the lifetime of this
      21                 :             :      * process. The seed is read from the RANDOM_CTX_SEED environment variable
      22                 :             :      * if set, otherwise generated randomly once, saved, and reused.
      23                 :             :      */
      24                 :             :     FIXED_SEED,
      25                 :             : };
      26                 :             : 
      27                 :             : /** Seed the global RNG state for testing and log the seed value. This affects all randomness, except GetStrongRandBytes(). */
      28                 :             : void SeedRandomStateForTest(SeedRand seed);
      29                 :             : 
      30                 :             : template <RandomNumberGenerator Rng>
      31                 :      174349 : inline CAmount RandMoney(Rng&& rng)
      32                 :             : {
      33                 :      174349 :     return CAmount{rng.randrange(MAX_MONEY + 1)};
      34                 :             : }
      35                 :             : 
      36                 :             : #endif // BITCOIN_TEST_UTIL_RANDOM_H
        

Generated by: LCOV version 2.0-1