Bitcoin Core
31.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
src
test
fuzz
random.cpp
Go to the documentation of this file.
1
// Copyright (c) 2020-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
#include <random.h>
6
#include <
test/fuzz/FuzzedDataProvider.h
>
7
#include <
test/fuzz/fuzz.h
>
8
#include <
test/fuzz/util.h
>
9
10
#include <algorithm>
11
#include <cstdint>
12
#include <string>
13
#include <vector>
14
15
FUZZ_TARGET
(random)
16
{
17
FuzzedDataProvider
fuzzed_data_provider
(buffer.data(), buffer.size());
18
FastRandomContext
fast_random_context
{
ConsumeUInt256
(
fuzzed_data_provider
)};
19
(
void
)
fast_random_context
.rand64();
20
(
void
)
fast_random_context
.randbits(
fuzzed_data_provider
.
ConsumeIntegralInRange
<
int
>(0, 64));
21
(
void
)
fast_random_context
.randrange(
fuzzed_data_provider
.
ConsumeIntegralInRange
<
uint64_t
>(
FastRandomContext::min
() + 1,
FastRandomContext::max
()));
22
(
void
)
fast_random_context
.randbytes(
fuzzed_data_provider
.
ConsumeIntegralInRange
<
size_t
>(0, 1024));
23
(
void
)
fast_random_context
.rand32();
24
(
void
)
fast_random_context
.rand256();
25
(
void
)
fast_random_context
.randbool();
26
(
void
)
fast_random_context
();
27
28
std::vector<int64_t>
integrals
=
ConsumeRandomLengthIntegralVector<int64_t>
(
fuzzed_data_provider
);
29
std::shuffle(
integrals
.begin(),
integrals
.end(),
fast_random_context
);
30
}
FuzzedDataProvider.h
FastRandomContext
Fast randomness source.
Definition
random.h:386
FuzzedDataProvider
Definition
FuzzedDataProvider.h:32
FuzzedDataProvider::ConsumeIntegralInRange
T ConsumeIntegralInRange(T min, T max)
Definition
FuzzedDataProvider.h:205
RandomMixin< FastRandomContext >::max
static constexpr uint64_t max() noexcept
Definition
random.h:375
RandomMixin< FastRandomContext >::min
static constexpr uint64_t min() noexcept
Definition
random.h:374
fuzz.h
FUZZ_TARGET
#define FUZZ_TARGET(...)
Definition
fuzz.h:35
util.h
ConsumeUInt256
uint256 ConsumeUInt256(FuzzedDataProvider &fuzzed_data_provider) noexcept
Definition
util.h:167
Ticks
constexpr auto Ticks(Dur2 d)
Helper to count the seconds of a duration/time_point.
Definition
time.h:73
fuzzed_data_provider
FuzzedDataProvider & fuzzed_data_provider
Definition
fees.cpp:38
Generated on Thu Apr 16 2026 09:42:38 for Bitcoin Core by
1.10.0