Coverage Report

Created: 2025-12-17 17:25

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/root/bitcoin/src/test/fuzz/difference_formatter.cpp
Line
Count
Source
1
// Copyright (c) 2025 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 <blockencodings.h>
6
#include <streams.h>
7
#include <random.h>
8
#include <test/fuzz/fuzz.h>
9
10
#include <vector>
11
12
FUZZ_TARGET(difference_formatter)
13
0
{
14
0
    const auto block_hash = InsecureRandomContext{{}}.rand256();
15
0
    DataStream ss{};
16
0
    ss << block_hash << std::span{buffer};
17
18
    // Test deserialization
19
0
    try {
20
0
        BlockTransactionsRequest test_container;
21
0
        ss >> test_container;
22
0
        assert(test_container.blockhash == block_hash);
23
24
        // Invariant: strictly monotonic increasing (no duplicates allowed)
25
0
        for (size_t i = 1; i < test_container.indexes.size(); ++i) {
26
0
            assert(test_container.indexes[i] > test_container.indexes[i-1]);
27
0
        }
28
29
0
    } catch (const std::ios_base::failure&) {
30
        // Expected for malformed input
31
0
    }
32
0
}