net: make CaptureMessage() mockable

Rename `CaptureMessage()` to `CaptureMessageToFile()` and introduce a
`std::function` variable called `CaptureMessage` whose value can be
changed by unit tests, should they need to inspect message contents.
This commit is contained in:
Vasil Dimov
2021-07-22 18:23:21 +02:00
parent 43868ba416
commit 3cb9d9c861
3 changed files with 23 additions and 3 deletions

View File

@@ -31,6 +31,7 @@
#include <condition_variable>
#include <cstdint>
#include <deque>
#include <functional>
#include <map>
#include <memory>
#include <optional>
@@ -1272,7 +1273,17 @@ private:
};
/** Dump binary message to file, with timestamp */
void CaptureMessage(const CAddress& addr, const std::string& msg_type, const Span<const unsigned char>& data, bool is_incoming);
void CaptureMessageToFile(const CAddress& addr,
const std::string& msg_type,
const Span<const unsigned char>& data,
bool is_incoming);
/** Defaults to `CaptureMessageToFile()`, but can be overridden by unit tests. */
extern std::function<void(const CAddress& addr,
const std::string& msg_type,
const Span<const unsigned char>& data,
bool is_incoming)>
CaptureMessage;
struct NodeEvictionCandidate
{