Merge bitcoin/bitcoin#34338: ci, iwyu: Fix warnings in src/zmq and treat them as errors

efcbf79448 ci, iwyu: Fix warnings in `src/zmq` and treat them as errors (Hennadii Stepanov)

Pull request description:

  This PR [continues](https://github.com/bitcoin/bitcoin/pull/33725#issuecomment-3466897433) the ongoing effort to enforce IWYU warnings.

  See [Developer Notes](https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#using-iwyu).

  Additionally, this adds a new include category to `src/.clang-format`.

ACKs for top commit:
  maflcko:
    review ACK efcbf79448 🐼
  janb84:
    re ACK efcbf79448
  sedited:
    ACK efcbf79448

Tree-SHA512: 5396719d4a9f7fff7b57be7284af5b25ff055edbaba417187e29106c9e310f19f361fbeea74e2448ef1e883a8658028762a38664858a863e5019fcb0cbb346a2
This commit is contained in:
merge-script
2026-01-31 09:37:03 +01:00
8 changed files with 15 additions and 19 deletions

View File

@@ -213,7 +213,7 @@ fi
if [[ "${RUN_IWYU}" == true ]]; then if [[ "${RUN_IWYU}" == true ]]; then
# TODO: Consider enforcing IWYU across the entire codebase. # TODO: Consider enforcing IWYU across the entire codebase.
FILES_WITH_ENFORCED_IWYU="/src/((crypto|index|kernel|primitives)/.*\\.cpp|node/blockstorage.cpp|node/utxo_snapshot.cpp|core_io.cpp|signet.cpp)" FILES_WITH_ENFORCED_IWYU="/src/((crypto|index|kernel|primitives|zmq)/.*\\.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)))' "${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" 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"

View File

@@ -108,6 +108,9 @@ IncludeCategories:
- Regex: '^<Q' - Regex: '^<Q'
Priority: 2 Priority: 2
CaseSensitive: true CaseSensitive: true
- Regex: '^<zmq.h>$'
Priority: 2
CaseSensitive: true
- Regex: '^<[^>.]*>' - Regex: '^<[^>.]*>'
Priority: 3 Priority: 3
CaseSensitive: false CaseSensitive: false

View File

@@ -11,14 +11,13 @@
#include <netbase.h> #include <netbase.h>
#include <primitives/block.h> #include <primitives/block.h>
#include <primitives/transaction.h> #include <primitives/transaction.h>
#include <validationinterface.h> #include <util/check.h>
#include <zmq/zmqabstractnotifier.h> #include <zmq/zmqabstractnotifier.h>
#include <zmq/zmqpublishnotifier.h> #include <zmq/zmqpublishnotifier.h>
#include <zmq/zmqutil.h> #include <zmq/zmqutil.h>
#include <zmq.h> #include <zmq.h>
#include <cassert>
#include <map> #include <map>
#include <string> #include <string>
#include <utility> #include <utility>

View File

@@ -8,16 +8,15 @@
#include <primitives/transaction.h> #include <primitives/transaction.h>
#include <validationinterface.h> #include <validationinterface.h>
#include <cstddef>
#include <cstdint> #include <cstdint>
#include <functional> #include <functional>
#include <list> #include <list>
#include <memory> #include <memory>
#include <vector> #include <vector>
class CBlock;
class CBlockIndex; class CBlockIndex;
class CZMQAbstractNotifier; class CZMQAbstractNotifier;
struct NewMempoolTransactionInfo;
class CZMQNotificationInterface final : public CValidationInterface class CZMQNotificationInterface final : public CValidationInterface
{ {

View File

@@ -5,39 +5,30 @@
#include <zmq/zmqpublishnotifier.h> #include <zmq/zmqpublishnotifier.h>
#include <chain.h> #include <chain.h>
#include <chainparams.h>
#include <crypto/common.h> #include <crypto/common.h>
#include <kernel/cs_main.h>
#include <logging.h> #include <logging.h>
#include <netaddress.h> #include <netaddress.h>
#include <netbase.h> #include <netbase.h>
#include <node/blockstorage.h>
#include <primitives/block.h>
#include <primitives/transaction.h> #include <primitives/transaction.h>
#include <rpc/server.h>
#include <serialize.h> #include <serialize.h>
#include <streams.h> #include <streams.h>
#include <sync.h>
#include <uint256.h> #include <uint256.h>
#include <util/check.h>
#include <zmq/zmqutil.h> #include <zmq/zmqutil.h>
#include <zmq.h> #include <zmq.h>
#include <cassert>
#include <cstdarg> #include <cstdarg>
#include <cstddef> #include <cstddef>
#include <cstdint> #include <cstdint>
#include <cstring> #include <cstring>
#include <map> #include <map>
#include <optional> #include <optional>
#include <span>
#include <string> #include <string>
#include <utility> #include <utility>
#include <vector> #include <vector>
namespace Consensus {
struct Params;
}
static std::multimap<std::string, CZMQAbstractPublishNotifier*> mapPublishNotifiers; static std::multimap<std::string, CZMQAbstractPublishNotifier*> mapPublishNotifiers;
static const char *MSG_HASHBLOCK = "hashblock"; static const char *MSG_HASHBLOCK = "hashblock";

View File

@@ -10,10 +10,10 @@
#include <cstddef> #include <cstddef>
#include <cstdint> #include <cstdint>
#include <functional> #include <functional>
#include <utility>
#include <vector> #include <vector>
class CBlockIndex; class CBlockIndex;
class CTransaction;
class CZMQAbstractPublishNotifier : public CZMQAbstractNotifier class CZMQAbstractPublishNotifier : public CZMQAbstractNotifier
{ {

View File

@@ -6,13 +6,15 @@
#include <rpc/server.h> #include <rpc/server.h>
#include <rpc/util.h> #include <rpc/util.h>
#include <univalue.h>
#include <zmq/zmqabstractnotifier.h> #include <zmq/zmqabstractnotifier.h>
#include <zmq/zmqnotificationinterface.h> #include <zmq/zmqnotificationinterface.h>
#include <univalue.h>
#include <list> #include <list>
#include <memory>
#include <string> #include <string>
#include <utility>
#include <vector>
class JSONRPCRequest; class JSONRPCRequest;

View File

@@ -5,6 +5,8 @@
#include <zmq/zmqutil.h> #include <zmq/zmqutil.h>
#include <logging.h> #include <logging.h>
#include <util/check.h>
#include <zmq.h> #include <zmq.h>
#include <cerrno> #include <cerrno>