Coverage Report

Created: 2026-06-09 19:51

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/root/bitcoin/src/test/fuzz/script_parsing.cpp
Line
Count
Source
1
// Copyright (c) 2019-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 <script/parsing.h>
6
#include <test/fuzz/FuzzedDataProvider.h>
7
#include <test/fuzz/fuzz.h>
8
#include <util/byte_units.h>
9
#include <util/string.h>
10
11
using util::Split;
12
13
FUZZ_TARGET(script_parsing)
14
0
{
15
0
    FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size());
16
0
    const size_t query_size = fuzzed_data_provider.ConsumeIntegral<size_t>();
17
0
    const std::string query = fuzzed_data_provider.ConsumeBytesAsString(std::min<size_t>(query_size, 1_MiB));
18
0
    const std::string span_str = fuzzed_data_provider.ConsumeRemainingBytesAsString();
19
0
    const std::span<const char> const_span{span_str};
20
21
0
    std::span<const char> mut_span = const_span;
22
0
    (void)script::Const(query, mut_span);
23
24
0
    mut_span = const_span;
25
0
    (void)script::Func(query, mut_span);
26
27
0
    mut_span = const_span;
28
0
    (void)script::Expr(mut_span);
29
30
0
    if (!query.empty()) {
  Branch (30:9): [True: 0, False: 0]
31
0
        mut_span = const_span;
32
0
        (void)Split(mut_span, query.front());
33
0
    }
34
0
}