dispute-coordinator: fix earliest session checks for pruning and import (#6358)

* RollingSession: add fn contains

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>

* handle_import_statements fix ancient dispute check

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>

* work with earliest session instead of latest

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>

* update comment

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
This commit is contained in:
Andrei Sandu
2022-11-28 18:43:13 +02:00
committed by GitHub
parent b108fd854b
commit eb00a21ef7
4 changed files with 38 additions and 18 deletions
@@ -294,6 +294,11 @@ impl RollingSessionWindow {
self.earliest_session + (self.session_info.len() as SessionIndex).saturating_sub(1)
}
/// Returns `true` if `session_index` is contained in the window.
pub fn contains(&self, session_index: SessionIndex) -> bool {
session_index >= self.earliest_session() && session_index <= self.latest_session()
}
async fn earliest_non_finalized_block_session<Sender>(
sender: &mut Sender,
) -> Result<u32, SessionsUnavailable>
@@ -783,6 +788,21 @@ mod tests {
cache_session_info_test(1, 2, Some(window), 2, None);
}
#[test]
fn cache_session_window_contains() {
let window = RollingSessionWindow {
earliest_session: 10,
session_info: vec![dummy_session_info(1)],
window_size: SESSION_WINDOW_SIZE,
db_params: Some(dummy_db_params()),
};
assert!(!window.contains(0));
assert!(!window.contains(10 + SESSION_WINDOW_SIZE.get()));
assert!(!window.contains(11));
assert!(!window.contains(10 + SESSION_WINDOW_SIZE.get() - 1));
}
#[test]
fn cache_session_info_first_late() {
cache_session_info_test(