ci, iwyu: Fix warnings in src/primitives and treat them as errors

This commit is contained in:
Hennadii Stepanov 2026-01-20 14:46:00 +00:00
parent c84c752506
commit fdc9fe2da6
No known key found for this signature in database
GPG Key ID: 410108112E7EA81F
6 changed files with 18 additions and 5 deletions

View File

@ -215,7 +215,7 @@ fi
if [[ "${RUN_IWYU}" == true ]]; then
# TODO: Consider enforcing IWYU across the entire codebase.
FILES_WITH_ENFORCED_IWYU="/src/((crypto|index|kernel)/.*\\.cpp|node/blockstorage.cpp|node/utxo_snapshot.cpp|core_io.cpp|signet.cpp)"
FILES_WITH_ENFORCED_IWYU="/src/((crypto|index|kernel|primitives)/.*\\.cpp|node/blockstorage.cpp|node/utxo_snapshot.cpp|core_io.cpp|signet.cpp)"
jq --arg patterns "$FILES_WITH_ENFORCED_IWYU" 'map(select(.file | test($patterns)))' "${BASE_BUILD_DIR}/compile_commands.json" > "${BASE_BUILD_DIR}/compile_commands_iwyu_errors.json"
jq --arg patterns "$FILES_WITH_ENFORCED_IWYU" 'map(select(.file | test($patterns) | not))' "${BASE_BUILD_DIR}/compile_commands.json" > "${BASE_BUILD_DIR}/compile_commands_iwyu_warnings.json"
@ -227,6 +227,7 @@ if [[ "${RUN_IWYU}" == true ]]; then
-p "${BASE_BUILD_DIR}" "${MAKEJOBS}" \
-- -Xiwyu --cxx17ns -Xiwyu --mapping_file="${BASE_ROOT_DIR}/contrib/devtools/iwyu/bitcoin.core.imp" \
-Xiwyu --max_line_length=160 \
-Xiwyu --check_also="*/primitives/*.h" \
2>&1 | tee /tmp/iwyu_ci.out
python3 "/include-what-you-use/fix_includes.py" --nosafe_headers < /tmp/iwyu_ci.out
git diff -U0 | ./contrib/devtools/clang-format-diff.py -binary="clang-format-${TIDY_LLVM_V}" -p1 -i -v

View File

@ -8,6 +8,10 @@
#include <hash.h>
#include <tinyformat.h>
#include <memory>
#include <span>
#include <sstream>
uint256 CBlockHeader::GetHash() const
{
return (HashWriter{} << *this).GetHash();

View File

@ -11,6 +11,11 @@
#include <uint256.h>
#include <util/time.h>
#include <cstdint>
#include <string>
#include <utility>
#include <vector>
/** Nodes collect new transactions into a block, hash them into a hash tree,
* and scan through nonce values to make the block's hash satisfy proof-of-work
* requirements. When they solve the proof-of-work, they broadcast the block

View File

@ -12,10 +12,10 @@
#include <script/script.h>
#include <serialize.h>
#include <tinyformat.h>
#include <uint256.h>
#include <algorithm>
#include <cassert>
#include <span>
#include <stdexcept>
std::string COutPoint::ToString() const

View File

@ -11,8 +11,8 @@
#include <primitives/transaction_identifier.h> // IWYU pragma: export
#include <script/script.h>
#include <serialize.h>
#include <uint256.h>
#include <compare>
#include <cstddef>
#include <cstdint>
#include <ios>

View File

@ -9,9 +9,12 @@
#include <uint256.h>
#include <util/types.h>
#include <compare>
#include <concepts>
#include <cstddef>
#include <optional>
#include <string>
#include <string_view>
#include <tuple>
#include <type_traits>
#include <variant>
/** transaction_identifier represents the two canonical transaction identifier