From b97a88bdea3fede3c594931b7ae7b9c65f534739 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Zemanovi=C4=8D?= Date: Tue, 28 Nov 2023 11:30:57 +0100 Subject: [PATCH] test/PoS/SM: fix params initialization --- proof_of_stake/src/parameters.rs | 9 +++++++++ proof_of_stake/src/tests/state_machine.rs | 8 +++++++- proof_of_stake/src/tests/state_machine_v2.rs | 12 ++++++++---- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/proof_of_stake/src/parameters.rs b/proof_of_stake/src/parameters.rs index ecacdde206..7902e0e217 100644 --- a/proof_of_stake/src/parameters.rs +++ b/proof_of_stake/src/parameters.rs @@ -245,6 +245,15 @@ impl OwnedPosParams { max_proposal_period: gov.max_proposal_period, } } + + /// A test helper to add the default gov params to PoS params. + #[cfg(any(test, feature = "testing"))] + pub fn with_gov_params(self, gov: &GovernanceParameters) -> PosParams { + PosParams { + owned: self, + max_proposal_period: gov.max_proposal_period, + } + } } impl std::ops::Deref for PosParams { diff --git a/proof_of_stake/src/tests/state_machine.rs b/proof_of_stake/src/tests/state_machine.rs index 9681c6f409..6f283e96fa 100644 --- a/proof_of_stake/src/tests/state_machine.rs +++ b/proof_of_stake/src/tests/state_machine.rs @@ -6,6 +6,7 @@ use std::ops::Deref; use assert_matches::assert_matches; use itertools::Itertools; +use namada_core::ledger::governance::parameters::GovernanceParameters; use namada_core::ledger::storage::testing::TestWlStorage; use namada_core::ledger::storage_api::collections::lazy_map::{ Collectable, NestedSubKey, SubKey, @@ -104,6 +105,8 @@ struct AbstractPosState { epoch: Epoch, /// Parameters params: PosParams, + /// Governance parameters used to construct `params` + gov_params: GovernanceParameters, /// Genesis validators genesis_validators: Vec, /// Bonds delta values. The outer key for Epoch is pipeline offset from @@ -217,6 +220,7 @@ impl StateMachineTest for ConcretePosState { .collect::>() ); let mut s = TestWlStorage::default(); + initial_state.gov_params.init_storage(&mut s).unwrap(); crate::test_utils::test_init_genesis( &mut s, initial_state.params.owned.clone(), @@ -1985,11 +1989,13 @@ impl ReferenceStateMachine for AbstractPosState { tracing::debug!("\nInitializing abstract state machine"); arb_params_and_genesis_validators(Some(8), 8..10) .prop_map(|(params, genesis_validators)| { - let params = params.with_default_gov_params(); + let gov_params = GovernanceParameters::default(); + let params = params.with_gov_params(&gov_params); let epoch = Epoch::default(); let mut state = Self { epoch, params, + gov_params, genesis_validators: genesis_validators .into_iter() // Sorted by stake to fill in the consensus set first diff --git a/proof_of_stake/src/tests/state_machine_v2.rs b/proof_of_stake/src/tests/state_machine_v2.rs index 70b0216d0b..c7cada6647 100644 --- a/proof_of_stake/src/tests/state_machine_v2.rs +++ b/proof_of_stake/src/tests/state_machine_v2.rs @@ -7,6 +7,7 @@ use std::{cmp, mem}; use assert_matches::assert_matches; use derivative::Derivative; use itertools::Itertools; +use namada_core::ledger::governance::parameters::GovernanceParameters; use namada_core::ledger::storage::testing::TestWlStorage; use namada_core::ledger::storage_api::collections::lazy_map::{ NestedSubKey, SubKey, @@ -66,6 +67,8 @@ struct AbstractPosState { epoch: Epoch, /// Parameters params: PosParams, + /// Governance parameters used to construct `params` + gov_params: GovernanceParameters, /// Genesis validators #[derivative(Debug = "ignore")] genesis_validators: Vec, @@ -1929,6 +1932,7 @@ impl StateMachineTest for ConcretePosState { .collect::>() ); let mut s = TestWlStorage::default(); + initial_state.gov_params.init_storage(&mut s).unwrap(); crate::test_utils::init_genesis_helper( &mut s, &initial_state.params, @@ -3575,12 +3579,12 @@ impl ReferenceStateMachine for AbstractPosState { arb_params_and_genesis_validators(Some(8), 8..10) .prop_map(|(params, genesis_validators)| { let epoch = Epoch::default(); + let gov_params = GovernanceParameters::default(); + let params = params.with_gov_params(&gov_params); let mut state = Self { epoch, - params: PosParams { - owned: params, - ..Default::default() - }, + params, + gov_params, genesis_validators: genesis_validators .into_iter() // Sorted by stake to fill in the consensus set first