From 45bbdcf772e176d87b25eafd74973f70bd4e0d6f Mon Sep 17 00:00:00 2001 From: Pietro Date: Wed, 24 Dec 2025 11:08:52 +0000 Subject: [PATCH 1/3] Advance time at distribution time --- ...upgrade_canisters_with_golden_nns_state.rs | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/rs/nns/integration_tests/src/upgrade_canisters_with_golden_nns_state.rs b/rs/nns/integration_tests/src/upgrade_canisters_with_golden_nns_state.rs index 4ae53ac9f688..0fed68ad555c 100644 --- a/rs/nns/integration_tests/src/upgrade_canisters_with_golden_nns_state.rs +++ b/rs/nns/integration_tests/src/upgrade_canisters_with_golden_nns_state.rs @@ -403,6 +403,7 @@ fn check_canisters_are_all_protocol_canisters(state_machine: &StateMachine) { mod sanity_check { use super::*; + use ic_nns_governance::governance::NODE_PROVIDER_REWARD_PERIOD_SECONDS; /// Metrics fetched from canisters either before or after testing. pub struct Metrics { @@ -428,12 +429,29 @@ mod sanity_check { state_machine: &StateMachine, before: Metrics, ) { - advance_time(state_machine); + advance_time( + state_machine, + before + .governance_most_recent_monthly_node_provider_rewards + .timestamp, + ); let after = fetch_metrics(state_machine); MetricsBeforeAndAfter { before, after }.check_all(); } - fn advance_time(state_machine: &StateMachine) { + fn advance_time(state_machine: &StateMachine, before_timestamp: u64) { + // Advance time in the state machine to just before the next rewards distribution time. + state_machine.advance_time(std::time::Duration::from_secs( + before_timestamp + NODE_PROVIDER_REWARD_PERIOD_SECONDS + - state_machine.get_time().as_secs_since_unix_epoch() + - 1, + )); + + for _ in 0..100 { + state_machine.advance_time(std::time::Duration::from_secs(1)); + state_machine.tick(); + } + // This duration is picked so that node rewards will definitely be distributed. state_machine.advance_time(std::time::Duration::from_secs(ONE_MONTH_SECONDS)); for _ in 0..100 { From 344801da93ff8b8652a03b67aefe46f47948488b Mon Sep 17 00:00:00 2001 From: Pietro Date: Wed, 31 Dec 2025 08:25:13 +0000 Subject: [PATCH 2/3] Remove second time advance --- .../src/upgrade_canisters_with_golden_nns_state.rs | 7 ------- 1 file changed, 7 deletions(-) diff --git a/rs/nns/integration_tests/src/upgrade_canisters_with_golden_nns_state.rs b/rs/nns/integration_tests/src/upgrade_canisters_with_golden_nns_state.rs index 0fed68ad555c..4261e8b82e64 100644 --- a/rs/nns/integration_tests/src/upgrade_canisters_with_golden_nns_state.rs +++ b/rs/nns/integration_tests/src/upgrade_canisters_with_golden_nns_state.rs @@ -451,13 +451,6 @@ mod sanity_check { state_machine.advance_time(std::time::Duration::from_secs(1)); state_machine.tick(); } - - // This duration is picked so that node rewards will definitely be distributed. - state_machine.advance_time(std::time::Duration::from_secs(ONE_MONTH_SECONDS)); - for _ in 0..100 { - state_machine.advance_time(std::time::Duration::from_secs(1)); - state_machine.tick(); - } } struct MetricsBeforeAndAfter { From a9b0703bb96162c229c4de3b94ebf4919abc893c Mon Sep 17 00:00:00 2001 From: Pietro Date: Wed, 31 Dec 2025 09:59:17 +0000 Subject: [PATCH 3/3] Remove unused import --- .../src/upgrade_canisters_with_golden_nns_state.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/rs/nns/integration_tests/src/upgrade_canisters_with_golden_nns_state.rs b/rs/nns/integration_tests/src/upgrade_canisters_with_golden_nns_state.rs index 4261e8b82e64..4537f91be776 100644 --- a/rs/nns/integration_tests/src/upgrade_canisters_with_golden_nns_state.rs +++ b/rs/nns/integration_tests/src/upgrade_canisters_with_golden_nns_state.rs @@ -3,7 +3,6 @@ use cycles_minting_canister::CyclesCanisterInitPayload; use ic_base_types::{CanisterId, PrincipalId}; use ic_crypto_sha2::Sha256; use ic_nervous_system_clients::canister_status::CanisterStatusType; -use ic_nervous_system_common::ONE_MONTH_SECONDS; use ic_nns_common::pb::v1::NeuronId; use ic_nns_constants::{ CYCLES_LEDGER_CANISTER_ID, CYCLES_MINTING_CANISTER_ID, GENESIS_TOKEN_CANISTER_ID,