mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 05:17:58 +00:00
Update some outdated slashing tests in runtime (#565)
* fix session slashing test * fix staking slashing tests
This commit is contained in:
committed by
GitHub
parent
68c1fc0b66
commit
a079be3e64
@@ -232,17 +232,6 @@ impl<T: Trait> Module<T> {
|
||||
let block_number = <system::Module<T>>::block_number();
|
||||
length_minus_1 - (block_number - Self::last_length_change() + length_minus_1) % length
|
||||
}
|
||||
|
||||
/// Returns `true` if the current validator set is taking took long to validate blocks.
|
||||
pub fn broken_validation() -> bool {
|
||||
let now = <timestamp::Module<T>>::get();
|
||||
let block_period = <timestamp::Module<T>>::block_period();
|
||||
let blocks_remaining = Self::blocks_remaining();
|
||||
let blocks_remaining = <T::Moment as As<T::BlockNumber>>::sa(blocks_remaining);
|
||||
now + blocks_remaining * block_period >
|
||||
Self::current_start() + Self::ideal_session_duration() *
|
||||
(T::Moment::sa(100) + Self::broken_percent_late()) / T::Moment::sa(100)
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: Trait> Executable for Module<T> {
|
||||
@@ -358,7 +347,7 @@ mod tests {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_identify_broken_validation() {
|
||||
fn should_rotate_on_bad_validators() {
|
||||
with_externalities(&mut new_test_ext(), || {
|
||||
System::set_block_number(2);
|
||||
assert_eq!(Session::blocks_remaining(), 0);
|
||||
@@ -370,18 +359,16 @@ mod tests {
|
||||
assert_eq!(Session::current_start(), 0);
|
||||
assert_eq!(Session::ideal_session_duration(), 15);
|
||||
// ideal end = 0 + 15 * 3 = 15
|
||||
// broken_limit = 15 * 130 / 100 = 19
|
||||
|
||||
System::set_block_number(3);
|
||||
assert_eq!(Session::blocks_remaining(), 2);
|
||||
Timestamp::set_timestamp(9); // earliest end = 9 + 2 * 5 = 19; OK.
|
||||
assert!(!Session::broken_validation());
|
||||
Timestamp::set_timestamp(9); // no bad validators. session not rotated.
|
||||
Session::check_rotate_session();
|
||||
|
||||
System::set_block_number(4);
|
||||
::system::ExtrinsicIndex::<Test>::put(1);
|
||||
assert_eq!(Session::blocks_remaining(), 1);
|
||||
Timestamp::set_timestamp(15); // another 1 second late. earliest end = 15 + 1 * 5 = 20; broken.
|
||||
assert!(Session::broken_validation());
|
||||
Session::note_offline(&0, vec![1]).unwrap(); // bad validator -> session rotate
|
||||
Session::check_rotate_session();
|
||||
assert_eq!(Session::current_index(), 2);
|
||||
});
|
||||
|
||||
@@ -87,7 +87,8 @@ fn slashing_should_work() {
|
||||
assert_eq!(Staking::voting_balance(&10), 21);
|
||||
|
||||
System::set_block_number(7);
|
||||
Timestamp::set_timestamp(100); // way too late - early exit.
|
||||
::system::ExtrinsicIndex::<Test>::put(1);
|
||||
Session::note_offline(&0, vec![0]).unwrap(); // val 10 reported bad.
|
||||
Session::check_rotate_session();
|
||||
assert_eq!(Staking::current_era(), 1);
|
||||
assert_eq!(Session::current_index(), 3);
|
||||
@@ -310,9 +311,9 @@ fn nominating_slashes_should_work() {
|
||||
assert_eq!(Staking::voting_balance(&4), 40);
|
||||
|
||||
System::set_block_number(5);
|
||||
Timestamp::set_timestamp(100); // late
|
||||
::system::ExtrinsicIndex::<Test>::put(1);
|
||||
Session::note_offline(&0, vec![0, 1]).unwrap(); // both get reported offline.
|
||||
assert_eq!(Session::blocks_remaining(), 1);
|
||||
assert!(Session::broken_validation());
|
||||
Session::check_rotate_session();
|
||||
|
||||
assert_eq!(Staking::current_era(), 2);
|
||||
@@ -388,7 +389,6 @@ fn staking_eras_work() {
|
||||
|
||||
// Block 6: No change.
|
||||
System::set_block_number(6);
|
||||
assert!(!Session::broken_validation());
|
||||
Session::check_rotate_session();
|
||||
assert_eq!(Session::current_index(), 6);
|
||||
assert_eq!(Staking::sessions_per_era(), 3);
|
||||
|
||||
Reference in New Issue
Block a user