diff options
Diffstat (limited to 'src/swarm/working_links.rs')
| -rw-r--r-- | src/swarm/working_links.rs | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/swarm/working_links.rs b/src/swarm/working_links.rs index 873baf6..13337b9 100644 --- a/src/swarm/working_links.rs +++ b/src/swarm/working_links.rs @@ -107,9 +107,21 @@ pub(crate) struct Pending { /// Checks done (`check`), for the benchmark to wait for one (`settled`). #[cfg(test)] checks: u64, - /// Records written, for the soak (`written`). + /// Records written, for the soak (`written`); and of those, how many changed + /// `unreached`, how many `reached`. #[cfg(test)] written: u64, + #[cfg(test)] + written_unreached: u64, + #[cfg(test)] + written_reached: u64, +} + +/// How many records we wrote that changed `unreached`, and `reached`. +#[cfg(test)] +pub(crate) fn written_by_set(state: &AppState) -> (u64, u64) { + let pending = state.working_links.lock_or_recover(); + (pending.written_unreached, pending.written_reached) } /// How many times we wrote our record. @@ -248,6 +260,11 @@ pub(crate) async fn check(state: &AppState) { return; } let (unreached, reached) = (next.unreached.len(), next.reached.len()); + #[cfg(test)] + let changed = ( + next.unreached != recorded.unreached, + next.reached != recorded.reached, + ); match state .mutate_doc(move |doc| members::set_links(doc, &me, &next)) .await @@ -255,7 +272,10 @@ pub(crate) async fn check(state: &AppState) { Ok(()) => { #[cfg(test)] { - state.working_links.lock_or_recover().written += 1; + let mut pending = state.working_links.lock_or_recover(); + pending.written += 1; + pending.written_unreached += u64::from(changed.0); + pending.written_reached += u64::from(changed.1); } info!( unreached, |
