From d99dbc496c4e1103d10607baceea90e2052d0cec Mon Sep 17 00:00:00 2001 From: Sergei Shulepov Date: Tue, 12 Jan 2021 22:45:11 +0100 Subject: [PATCH] Fix run_to_block functions (#2258) --- polkadot/runtime/parachains/src/dmp.rs | 6 +++--- polkadot/runtime/parachains/src/hrmp.rs | 12 ++++++------ polkadot/runtime/parachains/src/inclusion.rs | 10 +++++----- polkadot/runtime/parachains/src/paras.rs | 10 +++++----- polkadot/runtime/parachains/src/session_info.rs | 10 +++++----- 5 files changed, 24 insertions(+), 24 deletions(-) diff --git a/polkadot/runtime/parachains/src/dmp.rs b/polkadot/runtime/parachains/src/dmp.rs index 49fb2f8a57..103aeb1e0d 100644 --- a/polkadot/runtime/parachains/src/dmp.rs +++ b/polkadot/runtime/parachains/src/dmp.rs @@ -236,14 +236,14 @@ mod tests { while System::block_number() < to { let b = System::block_number(); Dmp::initializer_finalize(); + if new_session.as_ref().map_or(false, |v| v.contains(&(b + 1))) { + Dmp::initializer_on_new_session(&Default::default()); + } System::on_finalize(b); System::on_initialize(b + 1); System::set_block_number(b + 1); - if new_session.as_ref().map_or(false, |v| v.contains(&(b + 1))) { - Dmp::initializer_on_new_session(&Default::default()); - } Dmp::initializer_initialize(b + 1); } } diff --git a/polkadot/runtime/parachains/src/hrmp.rs b/polkadot/runtime/parachains/src/hrmp.rs index eb0e9aa603..4c9341652a 100644 --- a/polkadot/runtime/parachains/src/hrmp.rs +++ b/polkadot/runtime/parachains/src/hrmp.rs @@ -280,7 +280,7 @@ decl_storage! { // NOTE that this field is used by parachains via merkle storage proofs, therefore changing // the format will require migration of parachains. HrmpEgressChannelsIndex: map hasher(twox_64_concat) ParaId => Vec; - + /// Storage for the messages for each channel. /// Invariant: cannot be non-empty if the corresponding channel in `HrmpChannels` is `None`. HrmpChannelContents: map hasher(twox_64_concat) HrmpChannelId => Vec>; @@ -1101,17 +1101,17 @@ mod tests { Hrmp::initializer_finalize(); Paras::initializer_finalize(); - System::on_finalize(b); - - System::on_initialize(b + 1); - System::set_block_number(b + 1); - if new_session.as_ref().map_or(false, |v| v.contains(&(b + 1))) { // NOTE: this is in initialization order. Paras::initializer_on_new_session(&Default::default()); Hrmp::initializer_on_new_session(&Default::default()); } + System::on_finalize(b); + + System::on_initialize(b + 1); + System::set_block_number(b + 1); + // NOTE: this is in initialization order. Paras::initializer_initialize(b + 1); Hrmp::initializer_initialize(b + 1); diff --git a/polkadot/runtime/parachains/src/inclusion.rs b/polkadot/runtime/parachains/src/inclusion.rs index 4f0466f788..68a0b6f01f 100644 --- a/polkadot/runtime/parachains/src/inclusion.rs +++ b/polkadot/runtime/parachains/src/inclusion.rs @@ -1036,16 +1036,16 @@ mod tests { Inclusion::initializer_finalize(); Paras::initializer_finalize(); - System::on_finalize(b); - - System::on_initialize(b + 1); - System::set_block_number(b + 1); - if let Some(notification) = new_session(b + 1) { Paras::initializer_on_new_session(¬ification); Inclusion::initializer_on_new_session(¬ification); } + System::on_finalize(b); + + System::on_initialize(b + 1); + System::set_block_number(b + 1); + Paras::initializer_initialize(b + 1); Inclusion::initializer_initialize(b + 1); } diff --git a/polkadot/runtime/parachains/src/paras.rs b/polkadot/runtime/parachains/src/paras.rs index 8d06ceadf6..a0d5ad7d27 100644 --- a/polkadot/runtime/parachains/src/paras.rs +++ b/polkadot/runtime/parachains/src/paras.rs @@ -578,14 +578,14 @@ mod tests { while System::block_number() < to { let b = System::block_number(); Paras::initializer_finalize(); + if new_session.as_ref().map_or(false, |v| v.contains(&(b + 1))) { + Paras::initializer_on_new_session(&Default::default()); + } System::on_finalize(b); System::on_initialize(b + 1); System::set_block_number(b + 1); - if new_session.as_ref().map_or(false, |v| v.contains(&(b + 1))) { - Paras::initializer_on_new_session(&Default::default()); - } Paras::initializer_initialize(b + 1); } } @@ -1059,8 +1059,8 @@ mod tests { assert_eq!(::Heads::get(¶_id), Some(Default::default())); } - // run to block, with a session change at that block. - run_to_block(3, Some(vec![3])); + // run to block №4, with a session change at the end of the block 3. + run_to_block(4, Some(vec![4])); // cleaning up the parachain should place the current parachain code // into the past code buffer & schedule cleanup. diff --git a/polkadot/runtime/parachains/src/session_info.rs b/polkadot/runtime/parachains/src/session_info.rs index 64bf4d76b5..676f84512c 100644 --- a/polkadot/runtime/parachains/src/session_info.rs +++ b/polkadot/runtime/parachains/src/session_info.rs @@ -183,16 +183,16 @@ mod tests { SessionInfo::initializer_finalize(); Configuration::initializer_finalize(); - System::on_finalize(b); - - System::on_initialize(b + 1); - System::set_block_number(b + 1); - if let Some(notification) = new_session(b + 1) { Configuration::initializer_on_new_session(¬ification.validators, ¬ification.queued); SessionInfo::initializer_on_new_session(¬ification); } + System::on_finalize(b); + + System::on_initialize(b + 1); + System::set_block_number(b + 1); + Configuration::initializer_initialize(b + 1); SessionInfo::initializer_initialize(b + 1); }