From d883e1cdb29177ae57fc6327d054e8030cf069fe Mon Sep 17 00:00:00 2001 From: DuProcess <273172371+DuProcess@users.noreply.github.com> Date: Sun, 12 Jul 2026 21:21:36 -0400 Subject: [PATCH] Cover health log trace selection --- src/bin/dosh-client.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/bin/dosh-client.rs b/src/bin/dosh-client.rs index f46a1da..287b750 100644 --- a/src/bin/dosh-client.rs +++ b/src/bin/dosh-client.rs @@ -11007,6 +11007,36 @@ mod tests { assert_eq!(report.reconnect_none_events, 1); } + #[test] + fn trace_report_prefers_newer_health_log_over_stale_trace_file() { + let dir = tempfile::tempdir().unwrap(); + let root = dir.path().join("trace"); + let stale_trace = root.join("client-palav-1-1.log"); + let health = root.join("health.log"); + fs::create_dir_all(&root).unwrap(); + fs::write( + &stale_trace, + "ts_ms=10 pid=1 event=client.start version=old\n", + ) + .unwrap(); + std::thread::sleep(Duration::from_millis(20)); + fs::write( + &health, + concat!( + "ts_ms=20 pid=2 event=client.start version=new\n", + "ts_ms=21 pid=2 event=client.reconnect_none\n", + ), + ) + .unwrap(); + + let selected = newest_client_trace_path_from(&root, Some(health.clone())) + .unwrap() + .expect("newest client trace"); + assert_eq!(selected, health); + let report = summarize_trace_file(&selected, 10).unwrap(); + assert_eq!(report.reconnect_none_events, 1); + } + #[test] fn health_log_start_markers_only_for_connect_runs() { assert!(should_health_log_client_start(None));