Clone blocks passed in test

This commit is contained in:
Piotr Wójcik 2024-11-04 11:13:51 +01:00
commit 637d4031e1
3 changed files with 15 additions and 4 deletions

View file

@ -2211,12 +2211,12 @@ TEST (node, epoch_conflict_confirm)
.build ();
// Process initial blocks
ASSERT_TRUE (nano::test::process (node0, { send, send2, open }));
ASSERT_TRUE (nano::test::process (node1, { send, send2, open }));
ASSERT_TRUE (nano::test::process (node0, nano::test::clone ({ send, send2, open })));
ASSERT_TRUE (nano::test::process (node1, nano::test::clone ({ send, send2, open })));
// Process conflicting blocks on nodes as blocks coming from live network
ASSERT_TRUE (nano::test::process_live (node0, { change, epoch_open }));
ASSERT_TRUE (nano::test::process_live (node1, { change, epoch_open }));
ASSERT_TRUE (nano::test::process_live (node0, nano::test::clone ({ change, epoch_open })));
ASSERT_TRUE (nano::test::process_live (node1, nano::test::clone ({ change, epoch_open })));
// Ensure blocks were propagated to both nodes
ASSERT_TIMELY (5s, nano::test::exists (node0, { change, epoch_open }));

View file

@ -242,6 +242,13 @@ std::vector<nano::block_hash> nano::test::blocks_to_hashes (std::vector<std::sha
return hashes;
}
std::vector<std::shared_ptr<nano::block>> nano::test::clone (std::vector<std::shared_ptr<nano::block>> blocks)
{
std::vector<std::shared_ptr<nano::block>> clones;
std::transform (blocks.begin (), blocks.end (), std::back_inserter (clones), [] (auto & block) { return block->clone (); });
return clones;
}
std::shared_ptr<nano::transport::fake::channel> nano::test::fake_channel (nano::node & node, nano::account node_id)
{
auto channel = std::make_shared<nano::transport::fake::channel> (node);

View file

@ -390,6 +390,10 @@ namespace test
* Converts list of blocks to list of hashes
*/
std::vector<nano::block_hash> blocks_to_hashes (std::vector<std::shared_ptr<nano::block>> blocks);
/*
* Clones list of blocks
*/
std::vector<std::shared_ptr<nano::block>> clone (std::vector<std::shared_ptr<nano::block>> blocks);
/*
* Creates a new fake channel associated with `node`
*/