From c45a8c35c4eaa6586e1df39cc555ed63335b2edc Mon Sep 17 00:00:00 2001 From: Zhengchao An Date: Tue, 1 Sep 2026 03:43:26 +0800 Subject: [PATCH] test(ecstore): cover disk metric sequence snapshot (#6872) --- crates/ecstore/src/disk/disk_store.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/crates/ecstore/src/disk/disk_store.rs b/crates/ecstore/src/disk/disk_store.rs index 415b530e4..e5eccba32 100644 --- a/crates/ecstore/src/disk/disk_store.rs +++ b/crates/ecstore/src/disk/disk_store.rs @@ -2435,6 +2435,25 @@ mod tests { assert_eq!(window.acc_time, 18_000); } + #[test] + fn timed_action_slot_snapshot_skips_writer_owned_slot() { + let slot = TimedActionSlot::default(); + slot.unix_sec.store(70, Ordering::Relaxed); + slot.count.store(2, Ordering::Relaxed); + slot.acc_time.store(18_000, Ordering::Relaxed); + slot.version.store(2, Ordering::Release); + assert_eq!(slot.snapshot(), Some((70, 2, 18_000))); + + assert_eq!(slot.version.compare_exchange(2, 3, Ordering::AcqRel, Ordering::Relaxed), Ok(2)); + slot.unix_sec.store(71, Ordering::Relaxed); + slot.count.store(1, Ordering::Relaxed); + slot.acc_time.store(11_000, Ordering::Relaxed); + assert_eq!(slot.snapshot(), None); + + slot.version.store(4, Ordering::Release); + assert_eq!(slot.snapshot(), Some((71, 1, 11_000))); + } + #[test] fn disk_health_metrics_snapshot_exports_waiting_errors_and_operation_windows() { let metrics = DiskHealthMetricEpoch::default();