From ef63c23b6e91c76f900395e48881557e928cb118 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Wo=CC=81jcik?= <3044353+pwojcikdev@users.noreply.github.com> Date: Sun, 2 Mar 2025 12:47:49 +0100 Subject: [PATCH] Fix tests --- nano/core_test/node.cpp | 5 ++--- nano/core_test/request_aggregator.cpp | 28 +++++++++++++++++++++------ nano/core_test/vote_processor.cpp | 2 +- nano/node/repcrawler.cpp | 14 ++++++++++++-- 4 files changed, 37 insertions(+), 12 deletions(-) diff --git a/nano/core_test/node.cpp b/nano/core_test/node.cpp index 258b5e338..6643d6c99 100644 --- a/nano/core_test/node.cpp +++ b/nano/core_test/node.cpp @@ -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 (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 } diff --git a/nano/core_test/request_aggregator.cpp b/nano/core_test/request_aggregator.cpp index f5db2ddd4..9b1961aef 100644 --- a/nano/core_test/request_aggregator.cpp +++ b/nano/core_test/request_aggregator.cpp @@ -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> request; std::vector> 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); diff --git a/nano/core_test/vote_processor.cpp b/nano/core_test/vote_processor.cpp index 57a3c6a05..144a965d2 100644 --- a/nano/core_test/vote_processor.cpp +++ b/nano/core_test/vote_processor.cpp @@ -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% diff --git a/nano/node/repcrawler.cpp b/nano/node/repcrawler.cpp index c690ce74c..cdcc6bd5b 100644 --- a/nano/node/repcrawler.cpp +++ b/nano/node/repcrawler.cpp @@ -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 & 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 ()); } } }