Fix tests

This commit is contained in:
Piotr Wójcik 2025-03-02 12:47:49 +01:00
commit ef63c23b6e
4 changed files with 37 additions and 12 deletions

View file

@ -2783,9 +2783,8 @@ TEST (node, rollback_vote_self)
system.wallet (0)->insert_adhoc (nano::dev::genesis_key.prv);
// Without the rollback being finished, the aggregator should not reply with any vote
auto channel = std::make_shared<nano::transport::fake::channel> (node);
node.aggregator.request ({ { send2->hash (), send2->root () } }, channel);
ASSERT_ALWAYS_EQ (1s, node.stats.count (nano::stat::type::request_aggregator_replies), 0);
node.aggregator.request ({ { send2->hash (), send2->root () } }, node.loopback_channel);
ASSERT_ALWAYS (1s, !election->votes ().contains (nano::dev::genesis_key.pub));
// Going out of the scope allows the rollback to complete
}

View file

@ -28,7 +28,9 @@ TEST (request_aggregator, one)
nano::test::system system;
nano::node_config node_config = system.default_config ();
node_config.backlog_scan.enable = false;
auto & node (*system.add_node (node_config));
nano::node_flags node_flags;
node_flags.disable_rep_crawler = true;
auto & node (*system.add_node (node_config, node_flags));
system.wallet (0)->insert_adhoc (nano::dev::genesis_key.prv);
nano::block_builder builder;
auto send1 = builder
@ -77,7 +79,9 @@ TEST (request_aggregator, one_update)
nano::test::system system;
nano::node_config node_config = system.default_config ();
node_config.backlog_scan.enable = false;
auto & node (*system.add_node (node_config));
nano::node_flags node_flags;
node_flags.disable_rep_crawler = true;
auto & node (*system.add_node (node_config, node_flags));
system.wallet (0)->insert_adhoc (nano::dev::genesis_key.prv);
nano::keypair key1;
auto send1 = nano::state_block_builder ()
@ -143,7 +147,9 @@ TEST (request_aggregator, two)
nano::test::system system;
nano::node_config node_config = system.default_config ();
node_config.backlog_scan.enable = false;
auto & node (*system.add_node (node_config));
nano::node_flags node_flags;
node_flags.disable_rep_crawler = true;
auto & node (*system.add_node (node_config, node_flags));
system.wallet (0)->insert_adhoc (nano::dev::genesis_key.prv);
nano::keypair key1;
nano::state_block_builder builder;
@ -273,7 +279,9 @@ TEST (request_aggregator, split)
nano::test::system system;
nano::node_config node_config = system.default_config ();
node_config.backlog_scan.enable = false;
auto & node (*system.add_node (node_config));
nano::node_flags node_flags;
node_flags.disable_rep_crawler = true;
auto & node (*system.add_node (node_config, node_flags));
system.wallet (0)->insert_adhoc (nano::dev::genesis_key.prv);
std::vector<std::pair<nano::block_hash, nano::root>> request;
std::vector<std::shared_ptr<nano::block>> blocks;
@ -328,7 +336,9 @@ TEST (request_aggregator, channel_max_queue)
nano::node_config node_config = system.default_config ();
node_config.backlog_scan.enable = false;
node_config.request_aggregator.max_queue = 0;
auto & node (*system.add_node (node_config));
nano::node_flags node_flags;
node_flags.disable_rep_crawler = true;
auto & node (*system.add_node (node_config, node_flags));
system.wallet (0)->insert_adhoc (nano::dev::genesis_key.prv);
nano::block_builder builder;
auto send1 = builder
@ -390,6 +400,7 @@ TEST (request_aggregator, cannot_vote)
nano::test::system system;
nano::node_flags flags;
flags.disable_request_loop = true;
flags.disable_rep_crawler = true;
auto & node (*system.add_node (flags));
nano::state_block_builder builder;
auto send1 = builder.make_block ()
@ -548,7 +559,12 @@ TEST (request_aggregator, forked_open)
TEST (request_aggregator, epoch_conflict)
{
nano::test::system system;
auto & node = *system.add_node ();
nano::node_flags node_flags;
// Workaround for vote spacing dropping requests with the same root
// FIXME: Vote spacing should use full qualified root
node_flags.disable_rep_crawler = true;
auto & node = *system.add_node (node_flags);
// Voting needs a rep key set up on the node
system.wallet (0)->insert_adhoc (nano::dev::genesis_key.prv);

View file

@ -114,7 +114,7 @@ TEST (vote_processor, weights)
auto & node (*system.nodes[0]);
// Create representatives of different weight levels
auto const stake = node.config.online_weight_minimum.number ();
auto const stake = nano::dev::genesis->balance ().number ();
auto const level0 = stake / 5000; // 0.02%
auto const level1 = stake / 500; // 0.2%
auto const level2 = stake / 50; // 2%

View file

@ -38,6 +38,11 @@ void nano::rep_crawler::start ()
{
debug_assert (!thread.joinable ());
if (node.flags.disable_rep_crawler)
{
return;
}
thread = std::thread{ [this] () {
nano::thread_role::set (nano::thread_role::name::rep_crawler);
run ();
@ -130,11 +135,16 @@ void nano::rep_crawler::validate_and_process (nano::unique_lock<nano::mutex> & l
if (inserted)
{
logger.info (nano::log::type::rep_crawler, "Found representative: {} at: {}", vote->account.to_account (), channel->to_string ());
logger.info (nano::log::type::rep_crawler, "Found representative: {} at: {}",
vote->account.to_account (),
channel->to_string ());
}
if (updated)
{
logger.warn (nano::log::type::rep_crawler, "Updated representative: {} at: {} (was at: {})", vote->account.to_account (), channel->to_string (), prev_channel->to_string ());
logger.warn (nano::log::type::rep_crawler, "Updated representative: {} at: {} (was at: {})",
vote->account.to_account (),
channel->to_string (),
prev_channel->to_string ());
}
}
}