v0.3.14-pre.011
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-worker-raw-transaction-ingest-lib/unit_tests/snapshot.rs
|
||||
// version: 6
|
||||
// version: 7
|
||||
|
||||
fn snapshot_foundation_with_source_total(
|
||||
source_total: usize,
|
||||
@@ -304,3 +304,45 @@ fn v0_3_14_pre_009_health_requires_present_and_future_coverage_before_healthy()
|
||||
assert_eq!(faulted.worker_snapshot().health(), ksp_worker_api::WorkerHealth::Unhealthy);
|
||||
return;
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn v0_3_14_pre_011_snapshot_carries_checked_gap_observability() {
|
||||
let (mut publisher, source) = match snapshot_foundation_with_source_total(2) {
|
||||
std::option::Option::Some(value) => value,
|
||||
std::option::Option::None => return,
|
||||
};
|
||||
let gap = crate::RawTransactionIngestGapSnapshot::new(
|
||||
crate::RawTransactionIngestGapId::new(7),
|
||||
100,
|
||||
110,
|
||||
crate::RawTransactionIngestGapState::Pending,
|
||||
crate::RawTransactionIngestGapReason::SourceFailure,
|
||||
std::option::Option::None,
|
||||
);
|
||||
let continuity_snapshot = crate::RawTransactionIngestContinuitySnapshotProjection::empty()
|
||||
.with_gap_state(std::vec![gap], 1, 0, std::option::Option::Some(100))
|
||||
.with_recovery_totals(3, 1, 2, 1, 0)
|
||||
.with_material_totals(4, 5);
|
||||
let projection = crate::RawTransactionIngestProcessingFrontierProjection::new(0, std::option::Option::Some(120), std::option::Option::None)
|
||||
.with_continuity_snapshot(continuity_snapshot);
|
||||
assert!(publisher.record_processing_frontier(ksp_worker_api::WorkerState::Running, 0, 0, projection).is_ok());
|
||||
let snapshot = source.current();
|
||||
assert_eq!(snapshot.gaps().len(), 1);
|
||||
assert_eq!(snapshot.gaps()[0].gap_id().value(), 7);
|
||||
assert_eq!(snapshot.gaps()[0].start_slot(), 100);
|
||||
assert_eq!(snapshot.gaps()[0].end_slot(), 110);
|
||||
assert_eq!(snapshot.gaps()[0].state(), crate::RawTransactionIngestGapState::Pending);
|
||||
assert_eq!(snapshot.gaps()[0].reason(), crate::RawTransactionIngestGapReason::SourceFailure);
|
||||
assert_eq!(snapshot.gaps()[0].last_method(), std::option::Option::None);
|
||||
assert_eq!(snapshot.open_gap_count(), 1);
|
||||
assert_eq!(snapshot.repairing_gap_count(), 0);
|
||||
assert_eq!(snapshot.repaired_gap_total(), 3);
|
||||
assert_eq!(snapshot.unresolved_gap_total(), 1);
|
||||
assert_eq!(snapshot.replay_repair_total(), 2);
|
||||
assert_eq!(snapshot.redundant_coverage_repair_total(), 1);
|
||||
assert_eq!(snapshot.http_scan_repair_total(), 0);
|
||||
assert_eq!(snapshot.repair_block_fetch_total(), 4);
|
||||
assert_eq!(snapshot.repair_transaction_hydration_total(), 5);
|
||||
assert_eq!(snapshot.oldest_open_gap_start_slot(), std::option::Option::Some(100));
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user