/
githubmirror
/
bitcoin
Обзор
Документация
Войти
/
githubmirror
/
bitcoin
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/test/fuzz/block_header.cpp
49 строк
2 KB
Ava Chow
Merge bitcoin/bitcoin#32740: refactor: Header sync optimisations & simplifications
14 янв 2026, 22:38
Не верифицирован
14 янв 2026, 22:38
b0b6533
Код
Авторство
О чём код?
// Copyright (c) 2020-present The Bitcoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include <primitives/block.h> #include <test/fuzz/FuzzedDataProvider.h> #include <test/fuzz/fuzz.h> #include <test/fuzz/util.h> #include <uint256.h> #include <cassert> #include <cstdint> #include <optional> #include <string> #include <vector> FUZZ_TARGET(block_header) { FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); const std::optional<CBlockHeader> block_header = ConsumeDeserializable<CBlockHeader>(fuzzed_data_provider); if (!block_header) { return; } { const uint256 hash = block_header->GetHash(); constexpr uint256 u256_max{"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}; assert(hash != u256_max); assert(block_header->GetBlockTime() == block_header->nTime); assert(block_header->IsNull() == (block_header->nBits == 0)); } { CBlockHeader mut_block_header = *block_header; mut_block_header.SetNull(); assert(mut_block_header.IsNull()); CBlock block{*block_header}; assert(block.GetHash() == block_header->GetHash()); (void)block.ToString(); block.SetNull(); assert(block.GetHash() == mut_block_header.GetHash()); } { std::optional<CBlockLocator> block_locator = ConsumeDeserializable<CBlockLocator>(fuzzed_data_provider); if (block_locator) { (void)block_locator->IsNull(); block_locator->SetNull(); assert(block_locator->IsNull()); } } }