Bitcoin Core
31.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
src
test
fuzz
span.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 <
span.h
>
6
#include <
test/fuzz/FuzzedDataProvider.h
>
7
#include <
test/fuzz/fuzz.h
>
8
#include <
test/fuzz/util.h
>
9
10
#include <cassert>
11
#include <cstddef>
12
#include <cstdint>
13
#include <string>
14
#include <vector>
15
16
FUZZ_TARGET
(span)
17
{
18
FuzzedDataProvider
fuzzed_data_provider
(buffer.data(), buffer.size());
19
20
std::string str =
fuzzed_data_provider
.
ConsumeBytesAsString
(32);
21
const
std::span<const char> span{str};
22
(
void
)span.data();
23
(
void
)span.begin();
24
(
void
)span.end();
25
if
(span.size() > 0) {
26
const
std::ptrdiff_t idx =
fuzzed_data_provider
.
ConsumeIntegralInRange
<std::ptrdiff_t>(0
U
, span.size() - 1U);
27
(
void
)span.first(idx);
28
(
void
)span.last(idx);
29
(
void
)span.subspan(idx);
30
(
void
)span.subspan(idx, span.size() - idx);
31
(
void
)span[idx];
32
}
33
}
FuzzedDataProvider.h
FuzzedDataProvider
Definition
FuzzedDataProvider.h:32
FuzzedDataProvider::ConsumeBytesAsString
std::string ConsumeBytesAsString(size_t num_bytes)
Definition
FuzzedDataProvider.h:137
FuzzedDataProvider::ConsumeIntegralInRange
T ConsumeIntegralInRange(T min, T max)
Definition
FuzzedDataProvider.h:205
fuzz.h
FUZZ_TARGET
#define FUZZ_TARGET(...)
Definition
fuzz.h:35
span.h
util.h
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