From 95e8591565d93d00c697508601abb52b70c065ff Mon Sep 17 00:00:00 2001 From: Benjamin Gallois <business@gallois.cc> Date: Thu, 15 Feb 2024 16:26:07 +0100 Subject: [PATCH] Fix #194 session indexing error (nodes/rust/duniter-v2s!245) * fix https://git.duniter.org/nodes/rust/duniter-v2s/-/issues/194 * add test catching smith-members session indexing --- runtime/common/src/handlers.rs | 4 +++- runtime/gdev/tests/integration_tests.rs | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/runtime/common/src/handlers.rs b/runtime/common/src/handlers.rs index 1942c4195..f72a59a3c 100644 --- a/runtime/common/src/handlers.rs +++ b/runtime/common/src/handlers.rs @@ -24,11 +24,13 @@ use pallet_smith_members::SmithRemovalReason; pub struct OnNewSessionHandler<Runtime>(core::marker::PhantomData<Runtime>); impl<Runtime> pallet_authority_members::traits::OnNewSession for OnNewSessionHandler<Runtime> where - Runtime: pallet_provide_randomness::Config + pallet_distance::Config, + Runtime: + pallet_provide_randomness::Config + pallet_distance::Config + pallet_smith_members::Config, { fn on_new_session(index: sp_staking::SessionIndex) { pallet_provide_randomness::Pallet::<Runtime>::on_new_epoch(); pallet_distance::Pallet::<Runtime>::on_new_session(index); + pallet_smith_members::Pallet::<Runtime>::on_new_session(index); } } diff --git a/runtime/gdev/tests/integration_tests.rs b/runtime/gdev/tests/integration_tests.rs index 4f0b442f0..3864d3a01 100644 --- a/runtime/gdev/tests/integration_tests.rs +++ b/runtime/gdev/tests/integration_tests.rs @@ -246,6 +246,7 @@ fn test_session_change() { ExtBuilder::new(1, 3, 4).build().execute_with(|| { assert_eq!(<Runtime as pallet_babe::Config>::EpochDuration::get(), 25); assert_eq!(Session::current_index(), 0); + assert_eq!(SmithMembers::current_session(), 0); assert_eq!(Babe::epoch_index(), 0); assert_eq!(Babe::current_epoch_start(), 0u64); run_to_block(2); @@ -253,33 +254,42 @@ fn test_session_change() { assert_eq!(Babe::epoch_index(), 0); run_to_block(24); assert_eq!(Session::current_index(), 0); + assert_eq!(SmithMembers::current_session(), 0); assert_eq!(Babe::epoch_index(), 0); run_to_block(25); assert_eq!(Session::current_index(), 1); + assert_eq!(SmithMembers::current_session(), 1); assert_eq!(Babe::epoch_index(), 1); assert_eq!(Babe::current_epoch_start(), 25u64); run_to_block(26); assert_eq!(Session::current_index(), 1); + assert_eq!(SmithMembers::current_session(), 1); assert_eq!(Babe::epoch_index(), 1); run_to_block(50); assert_eq!(Session::current_index(), 2); + assert_eq!(SmithMembers::current_session(), 2); assert_eq!(Babe::epoch_index(), 2); assert_eq!(Babe::current_epoch_start(), 50u64); run_to_block(51); assert_eq!(Session::current_index(), 2); + assert_eq!(SmithMembers::current_session(), 2); assert_eq!(Babe::epoch_index(), 2); run_to_block(52); assert_eq!(Session::current_index(), 2); + assert_eq!(SmithMembers::current_session(), 2); assert_eq!(Babe::epoch_index(), 2); run_to_block(60); assert_eq!(Session::current_index(), 2); + assert_eq!(SmithMembers::current_session(), 2); assert_eq!(Babe::epoch_index(), 2); assert_eq!(Babe::current_epoch_start(), 50u64); run_to_block(75); assert_eq!(Session::current_index(), 3); + assert_eq!(SmithMembers::current_session(), 3); assert_eq!(Babe::epoch_index(), 3); run_to_block(100); assert_eq!(Session::current_index(), 4); + assert_eq!(SmithMembers::current_session(), 4); assert_eq!(Babe::epoch_index(), 4); }) } -- GitLab