Bitcoin Core
31.1.0
P2P Digital Currency
Toggle main menu visibility
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>(0U, 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
Generated on
for Bitcoin Core by
1.17.0