23 #include <validation.h>
28 #include <boost/test/unit_test.hpp>
54 auto connman = std::make_unique<CConnman>(0x1337, 0x1337, *
m_node.
addrman);
56 static_cast<ConnmanTestMsg*
>(connman.get())->SetPeerConnectTimeout(99999s);
62 CNode dummyNode1{
id++,
74 peerLogic->InitializeNode(&dummyNode1);
75 dummyNode1.fSuccessfullyConnected =
true;
86 LOCK(dummyNode1.cs_sendProcessing);
90 LOCK(dummyNode1.cs_vSend);
92 dummyNode1.vSendMsg.clear();
99 LOCK(dummyNode1.cs_sendProcessing);
103 LOCK(dummyNode1.cs_vSend);
109 LOCK(dummyNode1.cs_sendProcessing);
114 peerLogic->FinalizeNode(dummyNode1);
120 vNodes.emplace_back(
new CNode{
id++,
134 node.fSuccessfullyConnected =
true;
142 auto connman = std::make_unique<ConnmanTestMsg>(0x1337, 0x1337, *
m_node.
addrman);
152 const auto time_init{GetTime<std::chrono::seconds>()};
155 connman->Init(options);
156 std::vector<CNode *> vNodes;
159 for (
int i = 0; i < max_outbound_full_relay; ++i) {
163 peerLogic->CheckForStaleTipAndEvictPeers();
174 peerLogic->CheckForStaleTipAndEvictPeers();
189 peerLogic->CheckForStaleTipAndEvictPeers();
190 for (
int i = 0; i < max_outbound_full_relay; ++i) {
196 vNodes.back()->fDisconnect =
false;
202 peerLogic->CheckForStaleTipAndEvictPeers();
203 for (
int i = 0; i < max_outbound_full_relay - 1; ++i) {
206 BOOST_CHECK(vNodes[max_outbound_full_relay-1]->fDisconnect ==
true);
210 peerLogic->FinalizeNode(*
node);
213 connman->ClearTestNodes();
219 auto connman = std::make_unique<ConnmanTestMsg>(0x1337, 0x1337, *
m_node.
addrman);
230 connman->Init(options);
231 std::vector<CNode*> vNodes;
234 for (
int i = 0; i < max_outbound_block_relay; ++i) {
237 peerLogic->CheckForStaleTipAndEvictPeers();
239 for (
int i = 0; i < max_outbound_block_relay; ++i) {
245 peerLogic->CheckForStaleTipAndEvictPeers();
248 for (
int i = 0; i < max_outbound_block_relay; ++i) {
254 peerLogic->CheckForStaleTipAndEvictPeers();
255 for (
int i = 0; i < max_outbound_block_relay; ++i) {
262 vNodes.back()->fDisconnect =
false;
263 vNodes.back()->m_last_block_time = GetTime<std::chrono::seconds>();
265 peerLogic->CheckForStaleTipAndEvictPeers();
266 for (
int i = 0; i < max_outbound_block_relay - 1; ++i) {
269 BOOST_CHECK(vNodes[max_outbound_block_relay - 1]->fDisconnect ==
true);
273 peerLogic->FinalizeNode(*
node);
275 connman->ClearTestNodes();
282 auto connman = std::make_unique<ConnmanTestMsg>(0x1337, 0x1337, *
m_node.
addrman);
288 tor_netaddr.
SetSpecial(
"pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion"));
297 std::array<CNode*, 3> nodes;
299 banman->ClearBanned();
300 nodes[0] =
new CNode{
id++,
311 peerLogic->InitializeNode(nodes[0]);
312 nodes[0]->fSuccessfullyConnected =
true;
313 connman->AddTestNode(*nodes[0]);
316 LOCK(nodes[0]->cs_sendProcessing);
323 nodes[1] =
new CNode{
id++,
334 peerLogic->InitializeNode(nodes[1]);
335 nodes[1]->fSuccessfullyConnected =
true;
336 connman->AddTestNode(*nodes[1]);
339 LOCK(nodes[1]->cs_sendProcessing);
348 peerLogic->Misbehaving(nodes[1]->GetId(), 1,
"");
350 LOCK(nodes[1]->cs_sendProcessing);
361 nodes[2] =
new CNode{
id++,
372 peerLogic->InitializeNode(nodes[2]);
373 nodes[2]->fSuccessfullyConnected =
true;
374 connman->AddTestNode(*nodes[2]);
377 LOCK(nodes[2]->cs_sendProcessing);
388 peerLogic->FinalizeNode(*
node);
390 connman->ClearTestNodes();
397 auto connman = std::make_unique<CConnman>(0x1337, 0x1337, *
m_node.
addrman);
401 banman->ClearBanned();
402 int64_t nStartTime =
GetTime();
406 CNode dummyNode{
id++,
417 peerLogic->InitializeNode(&dummyNode);
418 dummyNode.fSuccessfullyConnected =
true;
422 LOCK(dummyNode.cs_sendProcessing);
427 peerLogic->FinalizeNode(dummyNode);
435 return m_orphans.size();
440 std::map<uint256, OrphanTx>::iterator it;
442 if (it == m_orphans.end())
443 it = m_orphans.begin();
444 return it->second.tx;
450 std::vector<unsigned char> keydata;
452 key.
Set(keydata.data(), keydata.data() + keydata.size(),
true);
475 for (
int i = 0; i < 50; i++)
479 tx.
vin[0].prevout.n = 0;
490 for (
int i = 0; i < 50; i++)
496 tx.
vin[0].prevout.n = 0;
497 tx.
vin[0].prevout.hash = txPrev->GetHash();
507 for (
int i = 0; i < 10; i++)
516 for (
unsigned int j = 0; j < tx.
vin.size(); j++)
518 tx.
vin[j].prevout.n = j;
519 tx.
vin[j].prevout.hash = txPrev->GetHash();
524 for (
unsigned int j = 1; j < tx.
vin.size(); j++)
525 tx.
vin[j].scriptSig = tx.
vin[0].scriptSig;
531 for (
NodeId i = 0; i < 3; i++)